2014-01-22 6 views
5

이벤트로 "change"모델을 업데이트하지 않았습니다. p:ajax과 함께 p:selectOneRadio과 다른 구성 요소 (p:inputText)의 값을 사용하고 있습니다.이 값은 Bean에 바인딩되어 있지 않습니다.p : selectOneRadio p : ajax

대신 p:selectBooleanCheckbox을 사용하는 경우 동작이 정확히 필요한데, ajax에서 메서드를 호출하기 전에 bean을 업데이트하십시오. 이것은 p:selectOneRadio의 버그입니까, 아니면 이것이 기본 동작입니까? 내가 JSF2, PrimeFaces

XHTML 코드 4 사용하고

:

<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> 

답변

6

event="change" 없애, 그것은 잘못된 이벤트입니다. 기본값은 click이며 이미 올바른 것입니다.

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

라디오 버튼 값은 절대로 변경되지 않습니다. 클릭하여 으로 선택했습니다. 차례로 선택된 값이 제출되지만 선택되지 않은 값은 제출되지 않습니다.