<h:selectBooleanCheckbox id="deactivate" title="select to deactivate" />
Run Code Online (Sandbox Code Playgroud)
我的JSF页面上有一个复选框和一个按钮.我希望仅在选中复选框时才启用该按钮.
在我的java类中没有手动javascript和没有监听器方法的JSF方式是什么.应该有一种方式可以用一种表达方式来做;
"panel group rendered=#{}"
Run Code Online (Sandbox Code Playgroud)
一个按钮呈现为启用,一个按钮呈现或禁用.
Bal*_*usC 14
在我的java类中没有javascript和没有监听器方法的JSF方式是什么
这根本不可能.我收集到你实际上的意思,"没有手动编写的JavaScript"(因此你接受使用的JSF生成的JavaScript <f:ajax>
)和"没有手动编写的监听器方法"(因此你在组件树状态下接受JSF自己的魔法).
在这种情况下,这应该做:
<h:form>
<h:selectBooleanCheckbox binding="#{checkbox}">
<f:ajax render="button" />
</h:selectBooleanCheckbox>
<h:commandButton id="button" value="submit"
action="#{bean.submit}"
disabled="#{not checkbox.value}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)
就这样.不需要额外的JS代码或JSF bean属性或侦听器方法.只是一种submit()
行动方法.
binding
在此示例中,该属性将Facelet范围内的UIComponent
引用放在<h:selectBooleanCheckbox>
变量名称下checkbox
.EL表达式#{checkbox.value}
返回value
组件的属性,该属性表示UISelectBoolean
组件已经存在的情况boolean
,可以在命令组件的disabled
属性中使用.
注意:如果您disabled="#{not checkbox.value}"
在较旧的Eclipse版本中遇到错误的EL错误,那么您需要按如下方式对其进行配置:窗口>首选项> Web> JavaServer Faces工具>验证>类型强制问题>一元操作布尔值强制问题将其设置为警告或忽略而不是错误.自Eclipse Mars以来,这不再是必需的了.
归档时间: |
|
查看次数: |
22692 次 |
最近记录: |