Mickdark 23 de abr. de 2013
Cara eu dei uma olhada no manal do VRaptor, e bem na parte que ele recebe NULL quando vc utiliza injeção de dependencias em métodos (que utilizam redirect ou forward)
http://vraptor.caelum.com.br/pt/docs/componentes/
Também é possível usar injeção de dependências em métodos. No entanto quando houver redirect ou forward para métodos com injeção desta forma, os objetos não serão injetados, recebendo NULL.
@Resource
public class ClienteController {
@Post
public void adiciona ( Cliente cliente , ClienteDao dao ) {
dao . adiciona ( cliente );
}
}
De qualquer forma, tenta tirar o @Component do seu ClienteDTO ou se não tiver coloca!
douglascst90 23 de abr. de 2013
Coloquei o @Component mas sem sucesso, deve ser algum detalhe…
So lembrando que meu ClienteDTO é meu “model”
Mickdark 23 de abr. de 2013
Voce pode postar o FacadeAdministrador?
douglascst90 23 de abr. de 2013
@ Component
public final class FacadeAdministrador implements FacadeAdministradorInterface {
private static final long serialVersionUID = - 3478573633778398564 L ;
/**
* Atributo referente a criação de Log da classe .
*/
private transient static Logger logger = Logger
. getLogger ( FacadeAdministrador . class . getName ());
// ############\\
// * Obs : Criar uma variável para cada classe e reescrever no construtor
private ClienteDelegateInterface clienteDelegate ;
public FacadeAdministrador (){
clienteDelegate = ClienteDelegate . getInstance ();
}
// #######CLIENTE######\\
public void inserir ( ClienteDTO clienteDto ) {
clienteDelegate . inserir ( clienteDto );
}
public void alterar ( ClienteDTO clienteDto ) {
clienteDelegate . alterar ( clienteDto );
}
public void excluir ( ClienteDTO clienteDto ) {
clienteDelegate . excluir ( clienteDto );
}
public List < ClienteDTO > listarTodosClientes () {
return clienteDelegate . listarTodosClientes ();
}
public ClienteDTO carregarCliente ( Long id ){
return clienteDelegate . carregarCliente ( id );
}
public List < ClienteDTO > buscarPorNomeCliente ( String nome ){
return clienteDelegate . buscarPorNomeCliente ( nome );
}
Eu ja fiz um teste criando um objeto pelo contrutor do ClienteDTO e ele grava no banco normal, o problema e q to moscando em algum detalhe pra pegar o obj da jsp
Mickdark 23 de abr. de 2013
Estranho, parece que está tudo certo, a única coisa diferente é o Final da classe e o implements que vc colocou, fora isso tá tudo normal!!! Vc pode colocar o model ClienteDTO tambem?
douglascst90 23 de abr. de 2013
public class ClienteDTO extends AbstractModelDTO {
private String email ;
private String assunto ;
private String comentario ;
public ClienteDTO ( Long id , String nome , String email , String comentario , String assunto ) {
super ( id , nome );
this . email = email ;
this . comentario = comentario ;
this . assunto = assunto ;
}
public String getEmail () {
return email ;
}
public void setEmail ( String email ) {
this . email = email ;
}
public String getComentario () {
return comentario ;
}
public void setComentario ( String comentario ) {
this . comentario = comentario ;
}
public String getAssunto () {
return assunto ;
}
public void setAssunto ( String assunto ) {
this . assunto = assunto ;
}
@Override
public String toString () {
return "ClienteDTO [email=" + email + ", assunto=" + assunto
+ ", comentario=" + comentario + "]" ;
}
@Override
public int hashCode () {
final int prime = 31 ;
int result = super . hashCode ();
result = prime * result + (( assunto == null ) ? 0 : assunto . hashCode ());
result = prime * result
+ (( comentario == null ) ? 0 : comentario . hashCode ());
result = prime * result + (( email == null ) ? 0 : email . hashCode ());
return result ;
}
@Override
public boolean equals ( Object obj ) {
if ( this == obj )
return true ;
if ( ! super . equals ( obj ))
return false ;
if ( getClass () != obj . getClass ())
return false ;
ClienteDTO other = ( ClienteDTO ) obj ;
if ( assunto == null ) {
if ( other . assunto != null )
return false ;
} else if ( ! assunto . equals ( other . assunto ))
return false ;
if ( comentario == null ) {
if ( other . comentario != null )
return false ;
} else if ( ! comentario . equals ( other . comentario ))
return false ;
if ( email == null ) {
if ( other . email != null )
return false ;
} else if ( ! email . equals ( other . email ))
return false ;
return true ;
}
Mickdark 23 de abr. de 2013
Tenta fazer um teste, adiciona um construtor vazio para o VRaptor poder instanciar, e (talvez já até tenha) adiciona o @Component .
douglascst90 23 de abr. de 2013
nossa qndo vc flo ja percebi q era isso, show!!
Vlw mano foi so add o contrutor vazio no meu DTO, vlw!!
Mickdark 23 de abr. de 2013
Opa, é isso ai manow ^^ por nada!!!