Foros del Web » Programación para mayores de 30 ;) » Java »

JSF Validador Personalizado no funciona

Estas en el tema de JSF Validador Personalizado no funciona en el foro de Java en Foros del Web. Hola. Estoy tratando de hacer una validacion en jsf, implementando la interfaz Validator pero me aparece un mensaje diciendo que no se encuentra la clase ...
  #1 (permalink)  
Antiguo 04/12/2015, 22:18
Avatar de Andreslrz  
Fecha de Ingreso: septiembre-2008
Mensajes: 99
Antigüedad: 15 años, 7 meses
Puntos: 2
Busqueda JSF Validador Personalizado no funciona

Hola.

Estoy tratando de hacer una validacion en jsf, implementando la interfaz Validator pero me aparece un mensaje diciendo que no se encuentra la clase validadora.

dejo el codigo:

JSF:
Código Java:
Ver original
  1. <?xml version='1.0' encoding='UTF-8' ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml"
  4.       xmlns:h="http://java.sun.com/jsf/html"
  5.       xmlns:f="http://java.sun.com/jsf/core"
  6.       xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
  7.       xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
  8.     <h:head>
  9.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  10.         <meta name="viewport" content="width=device-width, initial-scale=1"/>
  11.         <h:outputScript name="./js/jquery.js" />
  12.         <h:outputScript name="./js/bootstrap.js" />
  13.         <h:outputStylesheet name="./css/bootstrap.css"  />
  14.         <title>Facelet Title</title>
  15.     </h:head>
  16.     <h:body>
  17.         <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
  18.             <div class="container-fluid">
  19.                 <div class="navbar-header">
  20.                     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
  21.                         <span class="sr-only">Toggle navigation</span>
  22.                         <span class="icon-bar"></span>
  23.                         <span class="icon-bar"></span>
  24.                         <span class="icon-bar"></span>
  25.                     </button>
  26.                     <a class="navbar-brand" href="#">Distribuidora Santander</a>
  27.                 </div>
  28.                 <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
  29.                     <ul class="nav navbar-nav">
  30.                         <ui:repeat value="#{login.opciones}" var="item" rendered="true">
  31.                             <li> <a href="#{item.link}"> #{item.name}</a> </li>
  32.                         </ui:repeat>
  33.                     </ul>
  34.                 </div>
  35.             </div>
  36.         </nav>
  37.         <h:form styleClass="form-horizontal">
  38.             <div class="col-sm-6 col-sm-offset-9">
  39.                 <div class="panel panel-primary">
  40.                     <div class="panel-heading">
  41.                         Ingreso de Usuarios
  42.                     </div>
  43.                     <div class="panel-body">
  44.                         <h:outputLabel styleClass="control-label " value="Usuario:" for="inputUserName"/>
  45.                         <h:inputText id="inputUserName" styleClass="form-control input-sm" value="#{login.usuario}" required="true"></h:inputText>
  46.                         <h:message for="inputUserName" styleClass="aler alert-danger" />
  47.                         <h:outputLabel styleClass="control-label" value="Contraseña:" for="inputPassword"/>
  48.                         <h:inputSecret id="inputPassword" styleClass="form-control input-sm" value="#{login.contrasena}" required="true">
  49.                             <f:validator validatorId="rutas.com.validadores.ValidadorContrasena" />
  50.                         </h:inputSecret>
  51.                         <h:message for="inputPassword" styleClass="aler alert-danger" showDetail="true"/>
  52.                     </div>
  53.                     <div class="panel-footer">
  54.                         <h:commandButton class="btn btn-primary pull-right" value="Ingresar"></h:commandButton>
  55.                         <span class="clearfix"></span>
  56.                     </div>
  57.                 </div>
  58.             </div>
  59.         </h:form>
  60.     </h:body>
  61. </html>

validador:
Código Java:
Ver original
  1. package rutas.com.validadores;
  2.  
  3. import javax.faces.application.FacesMessage;
  4. import javax.faces.component.UIComponent;
  5. import javax.faces.context.FacesContext;
  6. import javax.faces.validator.Validator;
  7. import javax.faces.validator.ValidatorException;
  8.  
  9. /**
  10.  *
  11.  * @author Andres
  12.  */
  13. public class ValidadorContrasena implements Validator {
  14.  
  15.     /**
  16.      * Creates a new instance of ValidadorContrasena
  17.      */
  18.     public ValidadorContrasena() {
  19.     }
  20.  
  21.     @Override
  22.     public void validate(FacesContext fc, UIComponent uic, Object o) throws ValidatorException {
  23.         String contrasena = (String) o;
  24.         if(contrasena == null || "".equals(contrasena)) {
  25.             FacesMessage msg = new FacesMessage();
  26.             msg.setDetail("La contraseña  es necesaria");
  27.             throw new ValidatorException(msg);
  28.         }
  29.     }
  30.    
  31. }

faces-config.xml
Código XML:
Ver original
  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <faces-config version="2.2"
  3.              xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  4.              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.              xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
  6.     <managed-bean>
  7.         <managed-bean-name>login</managed-bean-name>
  8.         <managed-bean-class>rutas.com.Login</managed-bean-class>
  9.         <managed-bean-scope>request</managed-bean-scope>
  10.     </managed-bean>
  11.     <validator>
  12.         <validator-id>validadorContrasena</validator-id>
  13.         <validator-class>rutas.com.validadores.ValidadorContrasena</validator-class>
  14.     </validator>
  15. </faces-config>

Etiquetas: jsf, personalizado, string, validador
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:31.