【发布时间】:2013-09-11 03:40:36
【问题描述】:
Mojara 2.1.21
我已经根据 cmets 更新了我的问题。我有两种情况,组件绑定到服务器会话 bean。 (其他信息链接:Binding attribute causes duplicate component ID found in the view 和 https://stackoverflow.com/a/12512672/2692917)
版本 1:
single.xhtml:
<h:outputText value=... binding="#{mysessionbean.out}" />
java:
@SessionScoped @Named public class Mysessionbean {
UIOutput out;
//getter and setter ....
}
版本 2:
模板.xhtml:
<h:outputText value=... binding="#{mysessionbean.out}"
view1.xhtml:
<ui:composition template="template.xhtml" />
view2.xhtml:
<ui:composition template="template.xhtml" />
java:
@SessionScoped @Named public class Mysessionbean {
UIOutput out;
//getter and setter ....
}
版本 1 没问题。 (至少到目前为止我还没有遇到任何错误)。但是在版本 2 中,如果我从一个页面导航到另一个页面,则会发生重复的 id 错误。为什么会这样? 将(请求范围的)组件(在版本 1 中)与会话范围的绑定一起使用是否安全? 还有其他用例需要考虑吗?
编辑: 功能要求1:
我想在视图中使用 Primefaces 数据表。我需要这个数据表中的一些信息。 (如选中的行或行索引)。所以绑定数据表可以帮助我检索这些信息。
功能要求2:
复合组件中的组件绑定。它们将绑定到会话范围的 bean。 (而且主要用在一个页面上,但是如果我在另一个页面上使用呢?
要求 3
“版本2”中的情况。带有 primefaces 菜单和会话范围绑定的模板。为此,我使用了 EL-Binding。
【问题讨论】:
-
这绝对是不对的,不。组件实例本质上是请求范围的。另请参阅:stackoverflow.com/questions/2101755。在发布答案之前,请详细说明您认为这是正确解决方案的具体功能要求。然后我可以说出正确的方法。
-
@BalusC 感谢您的评论!我已经更新了我的问题。
-
您还没有详细说明功能需求。
-
@BalusC 我已经更新了我的问题
-
2 和 3 不清楚。缺少功能需求。