我有两个p:selectOneMenu
,一个是区域,另一个是区域,如果选择了区域,那么它应该自动选择相应的区域,区域和区域都从数据库表加载,区域表包含Zone_id。即可使用zone_id从学区访问区域。
加载表单时会加载区域和区域。
如何在Primefaces
中实现此功能?我在Java中做过相同的事情,但在Primefaces中没有。
答案 0 :(得分:0)
请查看Mkyong's JSF 2 ValueChangeListener Example。 <p:selectOneMenu>
应该像<h:selectOneMenu>
一样工作。
答案 1 :(得分:0)
你可以试试这个例子,因为我们可以使用两个以上的selectOneMenu,如果我们想要哪个可以相互依赖
page.xhtml
<h:outputLabel value="Country"></h:outputLabel>
<p:selectOneMenu value="#{someBean.countryId}" style="width:157px;">
<f:selectItem itemLabel="Select Country" itemValue="" />
<f:selectItems value="#{someBean.countryList}" var="country"
itemLabel="#{country.name}" itemValue="#{country.id}" />
<p:ajax update="State" listener="#{someBean.coutChange}" />
</p:selectOneMenu>
<h:outputLabel value="State"></h:outputLabel>
<p:selectOneMenu value="#{someBean.stateId}" id="State" style="width:157px;">
<f:selectItem itemLabel="Select State" itemValue="" />
<f:selectItems value="#{someBean.stateList}" var="state"
itemLabel="#{state.name}" itemValue="#{state.id}" />
</p:selectOneMenu>
在Bean类中,使用数组中的类型对象的数组列表并创建getter / setter,并在getter中编写查询以从数据库中获取数据。从selectOneMenu为选定值创建变量,将该变量用于selectOneMenu标记的value属性。然后在p:ajax标签中为侦听器编写一个检查coutryId的方法,如果不返回基于countryId的状态列表则为null。这应该有希望它可以帮助你