ラジオボタンに問題があります。フィールドセットに2セットのラジオボタンと1つのコマンドボタンがあります。ラジオボタンの選択に基づいて、尊重された値がajax呼び出しによって表示されます。しかし、問題は常に最初のボタンがコマンド ボタン アクションで考慮されることです。そのため、常に最初の値が表示されますが、2 番目のラジオ ボタンが選択されています。
//test.xhtml
<h:panelGroup id="demandDashBoardPanelGroupID">
<fieldset>
<legend style="font-family:Arial;font-size: 12px;">Demand Dashboard</legend>
<table>
<tr>
<td>
<h:selectOneRadio immediate="true" id="groupbyid" value="#{demandManagedBean.selectedRadioButton}" styleClass="labelstyle">
<f:selectItem itemLabel="Group By Creation Date Time" itemValue="1" />
<f:selectItem itemLabel="Group By Location" itemValue="2" />
</h:selectOneRadio>
</td>
<td>
<h:commandButton id="fetchbuttonID" value="Fetch"
style="font-size:13px;width:60px;height:25px;" action="#{demandManagedBean.displayDemandRequestsTable}">
<f:setPropertyActionListener target="#{demandManagedBean.selectedRadioButtonParam}" value="#{demandManagedBean.selectedRadioButton}"/>
<f:ajax render=":parentformid:demandrequestpanelgrpid" immediate="true"/>
</h:commandButton>
</td>
</tr>
</table>
</fieldset>
</h:panelGroup>
<h:panelGroup id="demandrequestpanelgrpid" rendered="#{demandManagedBean.renderedFieldSet}">
<fieldset id="demandrequestfieldsetid">
<legend style="font-family:Arial;font-size: 12px;">Demand Requests</legend>
<h:outputText rendered="#{demandManagedBean.renderCreationdateDmdtable}" value="first table"/>
<h:outputText rendered="#{demandManagedBean.renderDmdLocationTable}" value="second table"/>
</fieldset>
</h:panelGroup>
//バッキング Bean アクション
public void displayDemandRequestsTable(){
if(selectedRadioButtonParam!= null && selectedRadioButtonParam.endsWith("1")){
renderCreationdateDmdtable = true;
renderDmdLocationTable = false;
}else if(selectedRadioButtonParam!= null && selectedRadioButtonParam.endsWith("2")){
renderCreationdateDmdtable = false;
renderDmdLocationTable = true;
}
renderedFieldSet = true;
}