从PrimeFaces中的其他p:selectOneMenu控制一个p:selectOneMenu的选择

时间:2013-12-15 07:11:22

标签: jsf primefaces

我有两个p:selectOneMenu,一个是区域,另一个是区域,如果选择了区域,那么它应该自动选择相应的区域,区域和区域都从数据库表加载,区域表包含Zone_id。即可使用zone_id从学区访问区域。

加载表单时会加载区域和区域。 如何在Primefaces中实现此功能?我在Java中做过相同的事情,但在Primefaces中没有。

2 个答案:

答案 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。这应该有希望它可以帮助你