2009-08-05 8 views
3

J'ai une classe de commande nommée Parent comme suit:Est-ce que la validation de bean basée sur les annotations Spring-MVC prend en charge la propriété de collection? (Spring MVC)

public class Parent { 

    private List<Child> childList; 

    // getters and setters 

} 

et une classe d'enfant selon

public class Child { 

    @NotBlank 
    private String name; 

    @NotBlank 
    private String email; 

    @NotBlank 
    private Integer age; 

} 

En Spring validation module, j'ai remarqué une annotation @Cascade.

Question: Cela fonctionne-t-il dans une propriété basée sur une collection comme dans la propriété childList? Si oui, comment puis-je l'utiliser?

salutations,

Répondre

3

Avec Hibernate Validator 4.0.0 Beta2, vous pouvez.

Basé sur JSR-303 Bean Validation.

Annoter votre liste avec @Valid pour valider le contenu de la liste

@Valid 
private List<Child> childList; 

Maintenant valider:

ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); 
Validator validator = factory.getValidator(); 
Set<ConstraintViolation<Parent>> constraintViolations = validator.validate(Parent); 
+0

pris en charge par Spring MVC pour elle? –

+1

Vous pouvez faire: pour (ConstraintViolation contrainte:. Validateur() valider (parent)) { \t bindingResult.rejectValue (constraint.getPropertyPath(), null, constraint.getMessage()); } –

+0

Trank vous, Niels. Je vais suivre votre conseil. UPvote. Cordialement –