Seguem os arquivos: ApplicationContext, Faces-config e o meu validator
Obrigado.
Abraços
ApplicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="CotamusPU" />
</bean>
<context:component-scan base-package="com.cotamus" />
<context:annotation-config/>
<!--bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />-->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven/>
<!-- declarar os beans aquiii! -->
<bean id="postoDao" class="com.cotamus.dao.impl.PostoDaoImpl" />
<bean id="bandeiraDao" class="com.cotamus.dao.impl.BandeiraDaoImpl" />
<bean id="usuarioDao" class="com.cotamus.dao.impl.UsuarioDaoImpl" />
<bean id="cotacaoCombustivelDao" class="com.cotamus.dao.impl.CotacaoCombustivelDaoImpl" />
<bean id="comentariosPostosDao" class="com.cotamus.dao.impl.ComentariosPostosDaoImpl" />
<bean id="combustivelDao" class="com.cotamus.dao.impl.CombustivelDaoImpl" />
</beans>
Faces-config.xml
<?xml version='1.0' encoding='UTF-8'?>
<!-- =========== FULL CONFIGURATION FILE ================================== -->
<faces-config version="1.2"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<application>
<view-handler>
com.sun.facelets.FaceletViewHandler
</view-handler>
<el-resolver>
org.springframework.web.jsf.el.SpringBeanFacesELResolver
</el-resolver>
</application>
<!--<managed-bean>
<managed-bean-name>PostoMB</managed-bean-name>
<managed-bean-class>com.cotamus.controller.PostoMB</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope></managed-bean>-->
<navigation-rule>
<from-view-id>/cadastro_usuario.xhtml</from-view-id>
<navigation-case>
<from-outcome>salvou</from-outcome>
<to-view-id>/obrigado.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/alteracao_usuario.xhtml</from-view-id>
<navigation-case>
<from-outcome>alterou</from-outcome>
<to-view-id>/confirmacao.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<validator>
<validator-id>validaValorCotacao</validator-id>
<validator-class>com.cotamus.rn.ValidaValorCotacao</validator-class>
</validator>
<validator>
<validator-id>validaNome</validator-id>
<validator-class>com.cotamus.rn.ValidaNomeUsuario</validator-class>
</validator>
</faces-config>
Classe que implementa o validator
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.cotamus.rn;
import com.cotamus.dao.UsuarioDao;
import com.cotamus.dao.impl.DaoGenericoImpl;
import com.cotamus.entities.Usuario;
import javax.annotation.Resource;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
/**
*
* @author juliano
*/
public class ValidaNomeUsuario implements Validator {
@Resource
private UsuarioDao usuarioDao;
public UsuarioDao getUsuarioDao() {
return usuarioDao;
}
public void setUsuarioDao(UsuarioDao usuarioDao) {
this.usuarioDao = usuarioDao;
}
public void validate(FacesContext context, UIComponent toValidate, Object value) throws ValidatorException {
Usuario login = new Usuario();
login.setLogin((String) value);
//para verificar se o dao esta vindo nulo...
if(usuarioDao!=null){
System.out.println("ele nao eh nulo!");
}else{
System.out.println("ele EH nulo!");
}
if (usuarioDao.getUsuarioByNomeUsuario(login)!=null) {
((UIInput)toValidate).setValid(false);
FacesMessage message = new FacesMessage("Por favor escolha outro login, pois este já existe.");
context.addMessage(toValidate.getClientId(context), message);
}
}
}
[quote=gbvbahia01]Amigo acabei de descobrir o mesmo roblema,
Você conseguiu resolver?
Aqui eu tive que bolar uma “marreta”, estou com pressa e não tenho tempo de pesquisar muito:
Olha o que eu fiz:
Criei um construtor para o Validador:
public ValidadorRazaoSocial() {
context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
empresaDAOInterface = (DaoGenerico<Empresa, Long>)context.getBean("empresaDAOInterface");
}
E chamei o velho e bom ApplicationContext lá dentro, dai foi somente chamar meu DAO, deu certo.
Por favor, se você tiver achado uma forma mais “limpa” de resolver, posta ai…
Valeu[/quote]
Caso eu não encontre outra solução acho que vou utilizar esta mesmo, amigo. Tenho 1 semana para terminar meu tcc não tá fácil! heuheu
Obrigado pela ajuda.
Abraços