A muy simple applicaton JSF:JSF h: validación inputText y f: ajax rinden
- elemento InputText se asigna con validador.
- f: ajax se utiliza para representar el siguiente elemento (phoneNumber) mediante el evento
blur
. - Fax sólo se mostrará si inputText pasar el validador y el valor booleano isValid se establece en true
Aquí es el fragmento de código
<h:form id="invOrdersWizForm">
<h:inputText id="name" maxlength="9" styleClass="ordLabelNarrow"
validator="#{person.validatePerson}"
value="#{person.name}">
<f:ajax render="phoneLabel" event="blur"/>
</h:inputText>
<h:outputText id="phoneLabel"
rendered="#{person.isValid}"
styleClass="ordLabelWide" value="#{person.phoneNumber}" />
</h:form>
ManagedBean
public void validatePerson(FacesContext context, UIComponent toValidate, Object value) {
name = ((String) value).toUpperCase();
phoneNumber = "12345678";
isValid = true;
}
El problema es , por alguna razón, phoneNumber no se representa en absoluto.
La única manera que puedo hacer que funcione es cambiando f: ajax para hacer @form
<h:inputText id="name" maxlength="9" styleClass="ordLabelNarrow"
validator="#{person.validateSecurityCode}"
value="#{person.name}">
<f:ajax render="@form" event="blur"/>
</h:inputText>
o eliminar representan a partir de phoneNumber
rendered="#{person.isValid}"
Por alguna razón f: ajax, con específica el elemento Id y representado según managedBean Attribute no puede coexistir.
Alguna idea o consejo chicos?
NOTA: Este comportamiento también ocurre cuando se utiliza en lugar del oyente validador