【发布时间】:2014-06-16 18:20:36
【问题描述】:
版本:
Aapche MyFaces 2.1.14 RichFaces 4.3.5
问题:
我面临着 JSF2.1 非常奇怪的问题
如最后代码sn-p所示,基于布尔变量#{bean.disabled}.禁用布尔复选框
问题如下:
1)首先#{bean.disabled} 评估为false,因此启用了复选框。
用户点击复选框并提交表单(此处未显示表单)
2)action 方法设置disabled = true 和required= true 并再次呈现相同的页面
3) 在此阶段,UI 已单击并禁用了复选框。在这个阶段,形式是
再次提交,bean.setRequired 方法被调用,setter 值为FALSE,而它应该将其设置为TRUE
4)当我创建 disabled="#{false}" 时,这个问题消失了,bean.setRequired 方法被调用,setter 值为 TRUE
所以问题是为什么在第 3 步中观察到的行为即使 UI 在单击条件下显示复选框(意味着它的值为 TRUE,我还打印了
bean.required 值,仅评估为TRUE
代码:
<h:panelGroup>
<h:selectBooleanCheckbox id="invite" disabled="#{bean.disabled}" value="#{bean.required}" />
<h:outputText value="Do Update"/>
</h:panelGroup>
【问题讨论】:
-
c:if是否与问题相关? -
@Xtreme Biker :它并没有任何相关性
-
然后将其从问题中删除。问题应该包含显示问题的最少代码段。
-
backing bean 的作用域是什么?
-
@Xtreme Biker :从问题中删除了不必要的部分