Foro de elhacker.net

Programación => Java => Mensaje iniciado por: andreslrz en 6 Diciembre 2015, 16:41 pm



Título: Validador JSF no funciona
Publicado por: andreslrz en 6 Diciembre 2015, 16:41 pm
Hola.

Estoy haciendo un validor personalizado en jsf, he seguido varios tutoriales y ejemplos pero a mi nada me funciona, he puesto en varios foros y en uno me repondienron que era un error tipografico, pero no dijeron cual.

Dejo el codigo:

Código
  1. <h:form styleClass="form-horizontal">
  2.            <div class="col-sm-6 col-sm-offset-9">
  3.                <div class="panel panel-primary">
  4.                    <div class="panel-heading">
  5.                        Ingreso de Usuarios
  6.                    </div>
  7.                    <div class="panel-body">
  8.                        <h:outputLabel styleClass="control-label " value="Usuario:" for="inputUserName"/>
  9.                        <h:inputText id="inputUserName" styleClass="form-control input-sm" value="#{login.userName}" required="true">
  10.                            <f:validator validatorId="ui.userNameValidator" />
  11.                        </h:inputText>
  12.                        <h:message for="inputUserName" styleClass="aler alert-danger" />
  13.                        <h:outputLabel styleClass="control-label" value="Contraseña:" for="inputPassword"/>
  14.                        <h:inputSecret id="inputPassword" styleClass="form-control input-sm" value="#{login.password}" required="true">
  15.                            <f:validator validatorId="ui.passwordValidator" />
  16.                        </h:inputSecret>
  17.                        <h:message for="inputPassword" styleClass="aler alert-danger" />
  18.                    </div>
  19.                    <div class="panel-footer">
  20.                        <h:commandButton class="btn btn-primary pull-right" value="Ingresar"></h:commandButton>
  21.                        <span class="clearfix"></span>
  22.                    </div>
  23.                </div>
  24.            </div>
  25.        </h:form>
  26.  

Este seria el validador, lo tengo asi para login y contraseña.

Código
  1. import javax.faces.application.FacesMessage;
  2. import javax.faces.bean.ManagedBean;
  3. import javax.faces.bean.RequestScoped;
  4. import javax.faces.component.UIComponent;
  5. import javax.faces.context.FacesContext;
  6. import javax.faces.validator.FacesValidator;
  7. import javax.faces.validator.Validator;
  8. import javax.faces.validator.ValidatorException;
  9.  
  10. /**
  11.  *
  12.  * @author Andres
  13.  */
  14. @ManagedBean
  15. @RequestScoped
  16. @FacesValidator("ui.userNameValidator")
  17. public class UserNameValidator implements Validator {
  18.  
  19.    /**
  20.      * Creates a new instance of UserNameValidator
  21.      */
  22.    public UserNameValidator() {
  23.    }
  24.  
  25.    @Override
  26.    public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
  27.        String userName = (String) value;
  28.        if(userName == null || "".equals(userName)) {
  29.            FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Usuario invalido", "Ingrese un usuario");
  30.            throw new ValidatorException(msg);
  31.        }
  32.    }
  33.  
  34. }
  35.  

lo he puesto asi y tambien he intentado usado el faces-config.xml en ninguno de los dos casos funciona. agradezco si me pueden decir cual es el error,  ya llevo 3 dias y no lo encuentro y ya estoy cansado de ver tutoriales.