基本上是这个问题:
JSF 2.0 How to display a different h:panelGroup each time an item is selected from a selectOneMenu
但是我使用的是selectOneRadio,但我没有答案说可以解决的f:ajax。
我有什么想法可以重新渲染我的panelGroups?
我尝试了a4j:support,但没有成功。看起来好像要重新渲染,但没有任何变化。也许我做错了。因此,我将一个onclick =“ submit()”放在了selectOneRadio上,它可以工作,但它会再次加载整个页面。
<h:selectOneRadio value="#{myBean.selectedItem}" >
<a4j:support event="onclick" reRender="regionSomeItem,regionAnotherItem" />
<div class="cssClass">
<f:selectItem itemValue="someItem" itemLabel="Some Item"/>
</div>
<div class="cssClass">
<f:selectItem itemValue="anotherItem" itemLabel="Another Item"/>
</div>
<div class="clear"></div>
</h:selectOneRadio>
<a4j:region id="regionSomeItem" rendered="#{condition for some item}"/>
<a4j:region id="regionAnotherItem" rendered="#{condition for another item}"/>
最佳答案
您需要在a4j:region之外建立一个没有呈现标签的组。它似乎与尝试重新渲染它的标签reRender冲突。
<h:selectOneRadio value="#{myBean.selectedItem}" >
<a4j:support event="onclick" reRender="allItemsInOneGroup" />
</h:selectOneRadio>
<h:panelGroup id="allItemsInOneGroup">
<a4j:region rendered="#{condition for some item}">
</a4j:region>
<a4j:region rendered="#{condition for another item}">
</a4j:region>
</h:panelGroup>