Вы можете присоединить слушателей ajax к событиям DOM в любом компоненте ввода JSF HTML с помощью тега <f:ajax>
.
<h:inputText id="foo" value="#{bean.foo}">
<f:ajax event="keyup" execute="@this" render="fooMessage" />
<f:validator validatorId="fooValidator" />
</h:inputText>
<h:message id="fooMessage" for="foo" />
fooValidator
может быть простой реализацией Validator
, которую вы регистрируете в контексте лиц с помощью аннотации @FacesValidator
.
@FacesValidator("fooValidator")
public class FooValidator implements Validator {
@Override
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
// ...
if (invalid) {
throw new ValidatorException(new FacesMessage("Fail!"));
}
}
}
Смотри также:
В RichFaces это не сильно отличается. Есть только тег <a4j:ajax>
, который на стероидах составляет всего <f:ajax>
. Но на самом деле это не дает дополнительных преимуществ в этом конкретном случае. Смотрите также Есть ли разница между f: ajax и a4j: ajax?