Validar un input en JSF
Este es un ejemplo de como validar que un email es correcto. Aunque sólo se mira si se ha escrito el símbolo @, se pueden utilizar también expresiones regulares.
En la página xhtml o jspx:
< div id="loginForm">
< h:form id="registerInput">
< h:panelGrid width="375px" bgcolor="#e6edfd" columns="2" border="0">
< h:commandLink action="#{usuario.haceClickEnLogin}">Login/Registro< /h:commandLink>
< /h:panelGrid>
< h:message id="errorEmail" for="error" errorStyle="color:red"/ >
< /h:form>
< /div>
En el BackBean (Sabiendo que tenemos un atributo String email; con su get y set):
public void validaEmail(FacesContext context,
UIComponent toValidate,
Object value) {
String emailIntroducido = (String) value;
if (!emailIntroducido.contains("@")) {
FacesMessage message = new FacesMessage();
message.setSeverity(FacesMessage.SEVERITY_ERROR);
message.setSummary("Email no valido");
message.setDetail("Email no valido");
context.addMessage("registerInput:error", message);
}
}