我一直在寻找一种只为某些属性而不是所有属性验证bean的方法。
对于Ex:
public Class TestA {
@NotEmpty
private String first;
@NotEmpty
@Size(min=3,max=80)
private String second;
//getters and setters
}
我有另一个名为'TestB'的类,它引用了Class'TestA',如下所示
public Class TestB {
@NotEmpty
private String other;
@Valid
private TestA testA;
//public getters and setters
}
是否可以编写自定义注释验证器以仅验证某些属性?像下面的东西......
public Class TestB {
@NotEmpty
private String other;
@CustomValid(properties={"second"})
private TestA testA;
//public getters and setters
}
答案 0 :(得分:1)
使用groups
属性来执行此操作。它看起来像这样:
public Class TestA {
@NotEmpty(groups = {Second.class})
private String first;
@NotEmpty(groups = {Second.class})
@Size(min=3,max=80, groups = {Second.class})
private String second;
//getters and setters
}
和
public Class TestB {
@NotEmpty
private String other;
@Valid
private TestA testA;
//public getters and setters
}
Second
是一个在某处定义的空接口。
有关详细信息,请参阅文档中的示例:2.3. Validating groups此外,如果您使用Spring> = 3.1,您可能会对@Validates
注释感兴趣,它允许启用指定组的验证。