我有一个selectOneMenu,显示一些不同的东西类别:
<h:selectOneMenu value="#{searchController.selectedCategory}">
<f:selectItems value="#{searchController.formatedCategories()}" >
</f:selectItems>
</h:selectOneMenu>
我需要根据所选类别显示不同的panelGroup.
示例(选择第一项时需要显示此项)
<h:panelGroup id="carInfo">
<h:outputText value="marka" />
<h:selectOneMenu>
<f:selectItems value="#{searchController.formatedCarMarks()}" />
</h:selectOneMenu>
<h:outputText value="godina" />
<h:selectOneMenu>
<f:selectItems value="#{searchController.formatedYearFrom()}" />
</h:selectOneMenu>
<h:selectOneMenu>
<f:selectItems value="#{searchController.formatedYearTo()}" />
</h:selectOneMenu>
<h:outputText value="kms.:" />
<h:selectOneMenu>
<f:selectItems value="#{searchController.kmsFrom()}" />
</h:selectOneMenu>
<h:selectOneMenu>
<f:selectItems value="#{searchController.kmsTo()}" />
</h:selectOneMenu>
</h:panelGroup>
我不知道该怎么做,因为我需要刷新页面.
有任何想法吗? Ajax可以帮助我吗?如果是这样,有人可以告诉我怎么样?我根本不熟悉.
解决方法:
这可以通过ajax轻松完成:
>放< h:panelGroup>外部< h:panelGroup>内的元素
>嵌套< f:ajax>在< h:selectOneMenu>内并将外部< h:panelGroup>的id设为在其render属性中.
>给每个内部< h:panelGroup>元素一个呈现的属性,仅当选择了相应的类别时才会计算为true.