-1

我绑定了 ap: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);

            }

    }`
4

2 回答 2

0

您的侦听器方法不是更改选择值的地方。当用户更改视图中的选定选项时,它可以做任何您需要的事情。

如果要更改所选值,只需更改分配给绑定字段的值,在本例中为 bean.maritalStatus。您可以在许多地方执行此操作(如果需要,包括 youtr 侦听器)。

通常在 preRenderView 方法上是初始化选择默认值的地方。在你看来:

  <f:metadata>
    <f:event
      type="preRenderView"
      listener="#{bean.initializeForNew}" />
  </f:metadata>

在你的豆子上:

 public void initializeForNew() throws ModelException {
    if (!isPostBack()) {//only on loading
      bean.maritalStatus = getDefaultMaritaStatus();
    }
  }
于 2015-08-13T10:52:23.117 回答
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
于 2015-08-13T10:57:59.370 回答