JSR-303 L’annotation @Valid (object nested) ne fonctionne pas

[spring 3.0.5] [Jboss 5.1]

Mes classes principales sont

public class UserAddressesForm { @NotEmpty private Ssortingng firstName; @NotEmpty private Ssortingng lastName; private List addresses; ... setters and getters public class AddressForm { @NotEmpty private Ssortingng customName; @NotEmpty private Ssortingng city; @NotEmpty private Ssortingng streetAn; @NotEmpty private Ssortingng streetHn; @NotEmpty private Ssortingng addressCountry; @NotEmpty private Ssortingng postCode; ... setters and getters 

Un contrôleur

 @RequestMapping(value = "/up", method = RequestMethod.POST) public Ssortingng completeForm(@Valid @ModelAtsortingbute("userAddressesForm") UserAddressesForm userAddressesForm, BindingResult result, HttpServletRequest req) ... 

Une page JSP

 
<input type="input" name="" id="" value="" />
<input type="input" name="" id="" value="" /> <input type="input" name="" id="" value="" >
<input type="input" name="" id="" value="" />
<input type="input" name="" id="" value="" />

Pourquoi les champs d’object ne sont-ils pas validés AddressForm?

S’il vous plaît aider.

Vous devez décorer des addresses membre de UserAddressesForm avec @Valid annotation @Valid . Voir les sections 3.1.3 et 3.5.1 de JSR 303: Validation des haricots . Comme je l’ai expliqué dans ma réponse à la question Existe-t-il une méthode standard pour activer la validation de @Valid JSR 303 en utilisant la méthode annotée , c’est l’utilisation réelle de l’annotation @Valid selon JSR 303.

Edit Exemple de code: Hibernate Validator- Object Graph . (La liste des passagers en voiture)

En ajoutant à la réponse @Valid contrainte @Valid demandera au validateur de bean d’approfondir le type de sa propriété appliquée et de valider toutes les contraintes qui s’y trouvent. Répondez avec le code à votre question, le validateur, lorsqu’il @Valid une contrainte @Valid sur la propriété addresses , explorera la classe AddressForm et validera toutes les contraintes JSR 303 trouvées à l’intérieur, comme suit:

 public class UserAddressesForm { @NotEmpty private Ssortingng firstName; @NotEmpty private Ssortingng lastName; @Valid private List addresses; ... setters and getters public class AddressForm { @NotEmpty private Ssortingng customName; @NotEmpty private Ssortingng city; @NotEmpty private Ssortingng streetAn; @NotEmpty private Ssortingng streetHn; @NotEmpty private Ssortingng addressCountry; @NotEmpty private Ssortingng postCode; ... setters and getters