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<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<h:outputScript name="./js/jquery.js" />
<h:outputScript name="./js/bootstrap.js" />
<h:outputStylesheet name="./css/bootstrap.css" />
<title>Facelet Title</title>
</h:head>
<h:body>
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Distribuidora Santander</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<ui:repeat value="#{login.opciones}" var="item" rendered="true">
<li> <a href="#{item.link}"> #{item.name}</a> </li>
</ui:repeat>
</ul>
</div>
</div>
</nav>
<h:form styleClass="form-horizontal">
<div class="col-sm-6 col-sm-offset-9">
<div class="panel panel-primary">
<div class="panel-heading">
Ingreso de Usuarios
</div>
<div class="panel-body">
<h:outputLabel styleClass="control-label " value="Usuario:" for="inputUserName"/>
<h:inputText id="inputUserName" styleClass="form-control input-sm" value="#{login.usuario}" required="true"></h:inputText>
<h:message for="inputUserName" styleClass="aler alert-danger" />
<h:outputLabel styleClass="control-label" value="Contraseña:" for="inputPassword"/>
<h:inputSecret id="inputPassword" styleClass="form-control input-sm" value="#{login.contrasena}" required="true">
<f:validator validatorId="rutas.com.validadores.ValidadorContrasena" />
</h:inputSecret>
<h:message for="inputPassword" styleClass="aler alert-danger" showDetail="true"/>
</div>
<div class="panel-footer">
<h:commandButton class="btn btn-primary pull-right" value="Ingresar"></h:commandButton>
<span class="clearfix"></span>
</div>
</div>
</div>
</h:form>
</h:body>
</html>
validador:
Código Java:
Ver originalpackage rutas.com.validadores;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
/**
*
* @author Andres
*/
public class ValidadorContrasena implements Validator {
/**
* Creates a new instance of ValidadorContrasena
*/
public ValidadorContrasena() {
}
@Override
public void validate
(FacesContext fc, UIComponent uic,
Object o
) throws ValidatorException
{ if(contrasena == null || "".equals(contrasena)) {
FacesMessage msg = new FacesMessage();
msg.setDetail("La contraseña es necesaria");
throw new ValidatorException(msg);
}
}
}
faces-config.xml
Código XML:
Ver original<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
<managed-bean>
<managed-bean-name>login</managed-bean-name>
<managed-bean-class>rutas.com.Login</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<validator>
<validator-id>validadorContrasena</validator-id>
<validator-class>rutas.com.validadores.ValidadorContrasena</validator-class>
</validator>
</faces-config>