Да, вы можете написать свой собственный класс валидатора как это:
@FacesValidator("customValidator")
public class CustomValidator implements Validator{
public void validate(FacesContext context, UIComponent component,
Object value) throws ValidatorException {
// do your validation here
}
}
и использовать его в Facelets:
<h:inputText value="#{myBean.myValue}">
<f:validator validatorId="customValidator" />
</h:inputText>
Обратите внимание, что содержание @FacesValidator
аннотации должно совпадать с validatorId
атрибут f:validator
.
Кроме того, элементы ввода jsf имеют атрибут validator
. Вы можете использовать этот атрибут для делегирования проверки специальному методу в том, что вы поддерживаете bean-компонент.
с
public void validateInput(FacesContext context,
UIComponent component, Object object) {
// your validation with 'object' here
}
Это не то, что я хочу. Он добавляет проверку на страницу jsf. – Kayser
Это, вам нужно реализовать интерфейс Validator, чтобы создать собственный валидатор. Что вы хотите точно? –
В Bean вы можете проверить значение с помощью аннотаций. Что-то похожее. Я хочу написать валидатор, который проверяет входное значение в Bean. И я не хочу, чтобы в facelet – Kayser