0

我一直在寻找一种方法来验证 bean 仅针对某些属性而不是所有属性。

例如:

public Class TestA {

 @NotEmpty
 private String first;

 @NotEmpty
 @Size(min=3,max=80)
 private String second;

 //getters and setters

}

我有另一个名为“TestB”的类,它指的是“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
}
4

1 回答 1

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
}

WhereSecond是在某处定义的空接口。

有关更多详细信息,请参阅文档中的示例:2.3。验证组@Validates此外,如果您使用 Spring >= 3.1,您可能会对允许验证指定组的注释感兴趣。

于 2012-05-21T07:23:53.193 回答