gpt4 book ai didi

jsf - JSF复选框监听器

转载 作者:行者123 更新时间:2023-12-03 22:18:44 25 4
gpt4 key购买 nike

<h:selectBooleanCheckbox id="deactivate" title="select to deactivate" />

我的JSF页面上有一个复选框和一个按钮。我希望仅在选中复选框后才能启用按钮。

JSF的方法是什么,而我的Java类上没有手动javascript也没有监听器方法。应该可以用类似的表达方式做到这一点;
"panel group rendered=#{}" 

渲染一个按钮以启用,渲染一个按钮或禁用一个按钮。

最佳答案

What is the JSF way of doing this with no javascript and no listener method on my java class


这是绝对不可能的。我收集到的实际上是“没有手动编写的JavaScript”(因此您接受 <f:ajax> 使用的JSF生成的JavaScript)和“没有手动编写的监听器方法”(因此您在组件树状态上接受了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>
就这样。不需要其他的JS代码,JSF bean属性或监听器方法。只是一个 submit()操作方法。
在此示例中, binding属性会将 UIComponent <h:selectBooleanCheckbox> 引用放在Facelet范围内的变量名 checkbox下。 EL表达式 #{checkbox.value} 返回组件的 value属性,该属性表示在 UISelectBoolean 组件已经为 boolean的情况下,准备在命令组件的 disabled属性中使用。
注意:如果在较早的Eclipse版本中的 disabled="#{not checkbox.value}"行遇到错误的EL错误,则需要按以下方式进行配置:窗口>首选项> Web> JavaServer Faces工具>验证>输入强制问题>一元运算 bool 强制问题将其设置为“警告”或“忽略”,而不是“错误”。从Eclipse Mars开始,这不再是必须的。
也可以看看:
  • How does the 'binding' attribute work in JSF? When and how should it be used?
  • 关于jsf - JSF复选框监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17167377/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com