Eu estou tentando fazer a validação de email em um cadastrado de usuário…
quando entro com um email inválido, ele exibe a mensagem de que o email está errado, porém continua a execução e gravação no BD e a mensagem de sucesso tbm…
como corrigir pra interromper a execução, pra gravar somente se o email estiver certo…
package validadores;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
import util.SessionUtil;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmailValidator implements Validator {
@Override
public void validate(FacesContext context, UIComponent component, Object obj)
throws ValidatorException {
String email = (String) obj;
Pattern p = Pattern.compile(".+@.+\\.[a-z]+");
Matcher m = p.matcher(email);
boolean matchFound = m.matches();
if (!matchFound) {
SessionUtil.addWarningMessage("EmailInvalido");
}
}
}
<validator>
<validator-id>emailValidator</validator-id>
<validator-class>validadores.EmailValidator</validator-class>
</validator>
<h:inputText id="email" label="E-mail"
value="#{usuarioBean.usuario.email}" size="40" maxlength="50"
required="true">
<f:validator validatorId="emailValidator" />
</h:inputText>