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 !
Retorno campos vazios depois de Hibernate Validator + Vraptor!
7 Respostas
Galera, ninguém passou por isto?
Falou!
as mensagens de erro do hibernate estão aparecendo?
Sim lucascs, as mensagens de erro aparecem OK, só que os campos voltam vazios.
Falou
Vc tem que copiar o objeto recebido no metodo de execução para o atributo da classe.
é… tenta fazer algo do tipo:
@Parameter(…)
@Out
private SeuObjeto objeto;
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 !
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.