实际上,实现所需功能的直接方法是根据复选框的选择重新呈现组合框。这可以通过以下方式完成:
<h:selectBooleanCheckbox binding="#{checkbox}"> <f:ajax render="group" /></h:selectBooleanCheckbox><h:panelGroup id="group"> <h:selectoneMenu ... rendered="#{checkbox.value}" /></h:panelGroup>请注意,该代码在Bean中不需要任何特殊字段,并且
UIComponent绑定到了视图。
当然,如果您在模型中需要它,也可以通过bean属性来完成它:
<h:selectBooleanCheckbox value="#{bean.value}"> <f:ajax render="group" /></h:selectBooleanCheckbox><h:panelGroup id="group"> <h:selectoneMenu ... rendered="#{bean.value}" /></h:panelGroup>同样值得注意的是,通过
display在
none和之间切换元素的属性,普通的Javascript也可以实现此功能
block。但是请注意,在回发之间必须保持JSF组件的状态一致,以防止可能的恶意攻击威胁。



