p:selectOneRadio在使用p:ajax的change事件时没有更新模型

5
我正在使用带有p:ajax的p:selectOneRadio,并使用另一个组件(p:inputText)的值,而不是将其值绑定到我的bean中。
如果我改用p:selectBooleanCheckbox,则行为与我需要的完全相同,在调用ajax方法之前更新bean。这是p:selectOneRadio的错误还是默认行为?
我正在使用JSF2,PrimeFaces 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>
1个回答

6

去掉event="change",这是错误的事件。它默认为click,已经是正确的事件了。

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

单选按钮的值不会改变,只能通过点击来选择。因此,只有被选择的值才会被提交,未被选择的值不会被提交。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接