[VRAPTOR 3 + Hibernate Validator] Validar alguns campos

4 respostas
aspmedeiros

Tenho uma aplicação em que tem um fluxo de páginas para cadastro de uma entidade
Para validação estou usando Hibernate validator, vi na documentação do vraptor que para validar usando o hibernate validator é só fazer isso:

validator.validade(entidade);

Só que eu não queria validar toda a entidade só alguns campos.

Como faria?

4 Respostas

Lucas_Cavalcanti

faz sentido pra vc salvar uma entidade meio válida?

a idéia de usar o Hibernate Validator é justamente o seu objeto estar sempre totalmente válidos.

dá pra fazer o que vc quer, mas não vai ficar muito bonito, não tem nenhum jeito melhor?

[]'s

aspmedeiros

Salvar não, mas é porque na minha aplicação eu possui um fluxo de páginas, por isso que quero validar uma parte da entidade em uma página e outra parte na outra, só depois salva-la toda…isso é possível só com o hibernate validator ou terei que usar as validações do vraptor?!

Lucas_Cavalcanti

crie uma classe parecida com essa:
https://github.com/caelum/vraptor/blob/master/vraptor-core/src/main/java/br/com/caelum/vraptor/validator/HibernateValidator3.java

não precisa implementar BeanValidator, mas vc deve anotá-la com @Component.

no método validate, receba um varargs de String com os nomes das propriedades que vc quer validar

no for dos invalid values só adicione erro se value.getPropertyPath() for a que vc passou

receba essa classe nova no construtor do seu controller, e na validação faça:

validator.addAll(seuValidator.validate(bean, "nome", "endereço", "email"));
aspmedeiros

Vlw Lucas!

Criado 26 de novembro de 2010
Ultima resposta 27 de nov. de 2010
Respostas 4
Participantes 2