1

我想自动@Valid对我的所有属性施加约束。

例子:

public class Adult extends MyBeanValidationAbstractClass{
    @Min(18)
    public Integer age;
    @NotBlank
    public String name;
    public Dog dog;
    public Cat cat;
}

我希望验证器认为所有属性都有@Valid注释。

怎样才能做到这一点?

4

2 回答 2

0

因此,在您的示例中,您希望使用 @Valid 注释 Dog 和 cat。我猜 Integer 和 String 不应该受到影响?我不认为你可以自动化这个,除了你应该知道,你的属性有哪些要求?

--- 编辑:只是重新阅读......你不写注释,你想控制验证器。

您可以为您的类型编写自定义约束注解

@ValidAttributes
public class MyClass {
...
}

然后对该注释使用custome Validator。然后您可以使用反射来迭代所有属性并验证它们。

于 2011-03-08T14:20:12.410 回答
0

诚实的答案是:bean 验证没有遵循配置的约定——你必须把 @Valid 放在所有地方。恕我直言 bean 验证有一个基本的设计缺陷。

顺便说一句:对于那些不喜欢样板代码并想采用非官方方式的人,请看这里: https ://mmm.github.io/maven/apidocs/net/sf/mmm/util/bean/api/豆.html

于 2016-11-04T21:08:56.200 回答