我使用带有PrimeFaces的JSF 2.0。我使用两个<h:selectOneMenu>
组件来表示两个下拉菜单,我有以下功能需求:
-
如果用户在第一个下拉菜单中选择了可用性直方图或可用性行选项,则第二个下拉菜单应该显示出来。
-
否则如果用户在第一个下拉菜单中选择了 availability Percentage,则第二个下拉菜单应该被隐藏
我该怎么做呢?
这是目前为止我的视图的相关片段:
<h:selectOneMenu value="#{bean.availabilityDisplay}" id="Display">
<f:selectItem itemLabel="-- Select Display-- " itemValue="0"/>
<f:selectItems value="#{bean.getMyListDisplays()}"/>
</h:selectOneMenu>
<h:selectOneMenu value="#{bean.frequency}" id="frequency">
<f:selectItem itemLabel="-- Select Frequency-- " itemValue="0"/>
<f:selectItems value="#{bean.getMyListFrequency()}"/>
</h:selectOneMenu>
JSF2支持ajax,因此您可以将类似的内容附加到第一个selectBox
(正如我们在PrimeFaces论坛上讨论的那样)
在输出面板中包装第二个项目:
<h:selectOneMenu value="#{bean.availabilityDisplay}" id="Display">
<f:selectItem itemLabel="-- Select Display-- " itemValue="0"/>
<f:selectItems value="#{bean.myListDisplays}"/>
<f:ajax render="ajaxTarget" />
</h:selectOneMenu>
<p:outputPanel id="ajaxTarget">
<h:selectOneMenu
value="#{bean.frequency}" id="frequency"
rendered="#{bean.availabilityDisplay == 2 or bean.availabilityDisplay == 4}">
<f:selectItem itemLabel="-- Select Frequency-- " itemValue="0"/>
<f:selectItems value="#{bean.myListFrequency}"/>
</h:selectOneMenu>
</p:outputPanel>
http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=ajax&sample=selectsUpdates&skin=blueSky您可以使用#{not empty bean。