Criando um validador
Criar um validador em JSF é simples. Para tal, basta sobrescrever o método validade(), por meio de uma classe que estenda a interface javax.faces.validator.Validator, e registrá-lo no contexto do JSF. Vejamos um exemplo de validação de e-mail.
1. Criando o validador
public void validateEmail(FacesContext context, UIComponent toValidate, Object value) { String email = (String) value; if (email.indexOf('@') == -1) { ((UIInput) toValidate).setValid(false); FacesMessage message = new FacesMessage("Invalid Email"); context.addMessage(toValidate.getClientId(context), message); } }
2. Registrando o validador
Para registrar o validador, basta indicá-lo no Faces-config, conforme o exemplo abaixo:
<validator> <h:inputText id="email" value="#Bean.user.email}" validator="#{validateEmail}" required="true"/> <validator-class> </validator-class> </validator>
3. Usando o validador
Tendo criado e registrado o validador, basta usa-lo por meio do marcador <f:validator …/>:
<h:inputtext id="email" required="true" validator="#{validateEmail}" value="#Bean.user.email}"> </h:inputtext>