【发布时间】:2012-12-23 09:13:54
【问题描述】:
我正在用 JSF 做一些实验,场景如下:
我有一个会话范围的托管 bean
@ManagedBean(name = "rand")
@SessionScoped
我已经声明了以下内容(除其他外):
private UIOutput uiOutput;(plus getter and setter)
在我的 facelets 页面中,我有
<h:outputLabel for="userGuess" binding="#{rand.uiOutput}"
value="#{rand.listSize}" rendered="false"/>
页面上有一个按钮,以及按钮的操作方法以及我拥有的其他内容
this.uiOutput.setRendered(true);
但是好像不行,元素不会被渲染。
如果以渲染方式启动它并更改属性(将其设置为 true 或 false),它会起作用。 我怀疑这与以未渲染开始的元素未绑定到我在托管 bean 中的 uiOutput 对象这一事实有关。在这种情况下我怎样才能使它工作?
【问题讨论】:
-
最好绑定一个bean属性:
rendered="#{rand.someBoolean}" -
我完全同意,并且已经对其进行了测试并且它有效,我只是在尝试绑定到一个组件而不是一个值。
-
okie 毫无疑问,这个问题已经得到了很好的解释。但我想知道您想检查“我们如何使用托管 bean 进行渲染”或“UIOutput 的功能”?
标签: java jsf-2 managed-bean