işlemek çok basit bir MTU Applicaton:MTU h: inputText doğrulama ve f: ajax
- InputText elemanı Validator ile atanır.
- f: ajax,
blur
olayını kullanarak bir sonraki öğeyi (phoneNumber) oluşturmak için kullanılır. inputText doğrulayıcı ve isValid boolean değerini geçerse - PhoneNumber sadece görüntülenecektir true olarak ayarlanır Burada
sorundur
public void validatePerson(FacesContext context, UIComponent toValidate, Object value) {
name = ((String) value).toUpperCase();
phoneNumber = "12345678";
isValid = true;
}
<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 Kod parçacığı bir nedenden dolayı, phoneNumber hiç işlenmez. Ben iş yapabilir
tek yolu f değiştirerek geçerli: ajax @form
<h:inputText id="name" maxlength="9" styleClass="ordLabelNarrow"
validator="#{person.validateSecurityCode}"
value="#{person.name}">
<f:ajax render="@form" event="blur"/>
</h:inputText>
işlemek için Veya bazı nedeni f İçin phonenumber
rendered="#{person.isValid}"
tarihleri arasında oluşturulan kaldır: Belirli ile ajax öğe Kimliği ve managedBean Niteliğine dayalı olarak oluşturulanlar birlikte kullanılamaz.
Herhangi bir fikir veya tavsiye beyni?
NOT: Ben dinleyici yerine doğrulayıcı kullandığınızda bu davranış da olur f:ajax
istemci tarafında çalışır