Spring-MVC基于注释的bean验证是否支持集合类型属性?(Spring-MVC)

3

我有一个命令类,命名为Parent,如下:

public class Parent {

    private List<Child> childList;

    // getters and setters

}

根据一个子类

public class Child {

    @NotBlank
    private String name;

    @NotBlank
    private String email;

    @NotBlank
    private Integer age;

}

Spring验证模块中,我注意到了@Cascade注释。
问题:它是否能够在基于集合的属性中像childList属性一样工作?如果可以,我该如何使用它?
问候,
1个回答

3

使用Hibernate Validator 4.0.0 Beta2,您可以进行以下操作。

它基于JSR-303 Bean Validation。

使用@Valid对列表进行注释以验证列表内容。

@Valid
private List<Child> childList;

现在进行验证:
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<Parent>> constraintViolations = validator.validate(Parent);

Spring-MVC 支持它吗? - Arthur Ronald
1
你可以这样做:for(ConstraintViolation<Parent> constraint : validator().validate(parent)) {
bindingResult.rejectValue(constraint.getPropertyPath(), null, constraint.getMessage());
}
- Niels Peter Strandberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接