java中的自定义bean验证

时间:2012-05-21 04:53:51

标签: java bean-validation hibernate-validator

我一直在寻找一种只为某些属性而不是所有属性验证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
}

1 个答案:

答案 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注释感兴趣,它允许启用指定组的验证。