Retorno campos vazios depois de Hibernate Validator + Vraptor!

7 respostas
articof

Boa noite,
Estou com o seguinte problema: estou validando um VO com as anotações do Hibernate Validator + Vraptor e quando ocorre um erro de validação todos os campos do view ficam vazios.
Eu acho que o Vraptor, quando da um erro de validação no Hibernate, acaba não injetando os valores no VO, e então depois ejetando na view o objeto vazio ficando assim os campos vazios.
Eu já uso por exemplo: o <input value="${usuario.id}" … > e a anotação @Out no logic para ejetar o objeto.
Alguém achou uma solução para este problema ?
Obrigado !

7 Respostas

articof

Galera, ninguém passou por isto?
Falou!

Lucas_Cavalcanti

as mensagens de erro do hibernate estão aparecendo?

articof

Sim lucascs, as mensagens de erro aparecem OK, só que os campos voltam vazios.
Falou

P

Vc tem que copiar o objeto recebido no metodo de execução para o atributo da classe.

Lucas_Cavalcanti

é… tenta fazer algo do tipo:

@Parameter()

@Out

private SeuObjeto objeto;
articof

Não funcionou a anotação parameter.

Bom depois de pesquisar um pouco mais, achei uma solução não muito elegante que funcionou, que foi criar um método validador do Vraptor na própria classe:

public void validateCriaConta(ValidationErrors errors, Usuario usuario) { this.usuario = usuario; }

Desta forma o Vraptor primeiro -> entra no metodo validateCriaConta -> popula o this.usuario -> deixa o hibernate anotations trabalhar-> gera o erro -> mais agora finalmente retorna no view com o this.usuario preenchido !!

Pelo momento é isso, obrigado !

P

Vc não precisa criar um metodo de validade apenas pra isso, é só vc colocar essa mesma linha numero 2 no inicio do seu metodo “criaConta” pois caso ocorra algum erro na validação o objeto já vai estar populado e esse sera devolvido ao JSP.

Criado 24 de setembro de 2009
Ultima resposta 29 de set. de 2009
Respostas 7
Participantes 3