我正在验证一个大 bean。它基于动态表单页面。正在验证的某些字段在表单上不可见,因此为空或为空。但我不希望验证不可见的字段。有时它们是可见的,我希望它们被验证,有时它们不可见,我不希望它们被验证。我首先采取了在提交之前从序列化表单中剥离这些字段的方法。但它仍然会验证缺失的字段,因为它们存在于带有验证标签的 bean 中。做我想做的事情的正确方法是什么?
问问题
2471 次
1 回答
3
一种可能的方法是使用验证组。您为不同的组定义不同的验证规则。之后,您可以仅为其中一个组或一组组调用验证器。
public class TestBean {
@NotNull(groups= {Group1.class})
@Size.List({
@Size(min=1, groups= {Group1.class}),
@Size(min=0, groups= {Group2.class})
})
private String test;
}
public interface Group1 { }
public interface Group2 { }
然后您可以为这些组中的一个或多个调用验证器
Validator validator = ....;
Set<ConstraintViolation<Object>> constraintViolations = validator.validate(objectToValidate, Group1.class);
有关验证组的更多信息,请参见此处。
于 2013-01-23T17:27:55.253 回答