我绑定了一个p:selectOneRadio组件,如下所示,
<p:selectOneRadio binding="#{bean.maritalStatusRadio}" value="#{bean.maritalStatus}" >
<f:selectItems value="#{selectItemList.maritalStatusList}" />
<p:ajax event="change" listener="#{bean.handleChangeInMaritalStatus}" />
</p:selectOneRadio>
但我无法从支持bean类更新其值。
SelectOneRadio maritalStatusRadio;
public void handleChangeInMaritalStatus() {
String currentValue =String.valueOf(maritalStatusRadio.getValue());
if(!currentValue.equals(MARITAL_STATUS_MARRIED)) {
maritalStatusRadio.setValue(MARITAL_STATUS_MARRIED);
}
}`
答案 0 :(得分:0)
您的侦听器方法不是更改选择值的地方。当用户在视图中更改所选选项时,可以执行任何操作。
如果要更改所选值,只需更改分配给绑定字段的值,在本例中为bean.maritalStatus。您可以在许多地方(包括youtr listener,如果需要)进行此操作。
通常在preRenderView方法上初始化一个选择默认值。 在你看来:
<f:metadata>
<f:event
type="preRenderView"
listener="#{bean.initializeForNew}" />
</f:metadata>
在你的bean上:
public void initializeForNew() throws ModelException {
if (!isPostBack()) {//only on loading
bean.maritalStatus = getDefaultMaritaStatus();
}
}
答案 1 :(得分:0)
<p:selectOneRadio id="radioButton" binding="#{nominee.maritalStatusRadio}" value="#{nominee.prospective.maritalStatus}" disabled="#{disabled}" >
<f:selectItems value="#{selectItemList.maritalStatusList}" />
<p:ajax update="radioButton" event="change" listener="#{nominee.handleChangeInMaritalStatus}" />
</p:selectOneRadio>
It worked for me I was not updating p:selectOneRadio in p:ajax