5

p:selectOneRadiowithp:ajaxと別のコンポーネントの値 ( )を使用しており、p:inputTextその値を Bean にバインドしていません。

代わりに使用する場合p:selectBooleanCheckbox、動作はまさに必要なものであり、ajax でメソッドを呼び出す前に Bean を更新します。これはバグですか、p:selectOneRadioそれともデフォルトの動作ですか?

私はJSF2PrimeFaces 4を使用しています

xhtmlコード:

 <p:selectOneRadio id="enumId" value="#{xyzController.entity.enumValor}"
    disabled="#{disabled}" required="true" plain="true">
    <f:selectItems value="#{xyzController.enum}" var="item"
        itemLabel="#{messages[ELUtils.evaluateExpression(itemLabelEL)]}"
        itemValue="#{item}" />
    <p:ajax event="change" listener="#{xyzController.aoTrocar}"
        update="panelDominioFields" process="@form" />
</p:selectOneRadio>

<p:outputPanel layout="inline" id="panelDominioFields">
    <p:inputText id="valorId"
        value="#{xyzController.entity.valorNumericoValido}"
        rendered="#{xyzController.mostrarCampoDominioNumerico}"
        required="true">
        <f:convertNumber type="number" locale="#{localeController.locale}"
            currencyCode="#{localeController.currencyCode}" />
    </p:inputText>
</p:outputPanel>
4

1 に答える 1

6

を取り除きevent="change"ます。これは間違ったイベントです。それはデフォルトでclickあり、すでに正しいものです。

<p:ajax listener="#{xyzController.aoTrocar}"
    update="panelDominioFields" process="@form" />

ラジオ ボタンの値は変更されません。クリックするだけで選択できます。次に、選択された値は送信されますが、選択されていない値は送信されません。

于 2014-01-22T19:27:59.433 に答える