use*_*290 6 java bean-validation
在使用jsr303时我有下一个问题:
我有下一个方式注释字段:
@NotEmpty(message = "Please specify your post code")
@PostCode(message = "Your post code is incorrect")
private String postCode;
Run Code Online (Sandbox Code Playgroud)
但是,只有当字段通过了@NotEmpty的验证时,我才需要检查@PostCode.我如何检查两个注释?提前致谢
您可以使用验证组按组执行验证。详细信息请参见第3.4 节。JSR-303中的组和组序列。在您的示例中,您会执行以下操作:
@NotEmpty(message = "Please specify your post code")
@PostCode(message = "Your post code is incorrect", groups = Extended.class)
private String postCode;
Run Code Online (Sandbox Code Playgroud)
验证时,您将为默认组调用验证,如果没有发生错误,则为该Extended组调用验证。
Validator validator = factory.getValidator();
Set<ConstraintViolation<MyClass>> constraintViolations = validator.validate(myClass, Default.class);
if (constraintViolations.isEmpty()) {
constraintViolations = validator.validate(myClass, Extended.class);
}
Run Code Online (Sandbox Code Playgroud)
您可以使用验证组做更多事情。
另一种方法是进行所有验证(如果您负担得起),然后手动过滤掉同一字段的多个验证错误。
| 归档时间: |
|
| 查看次数: |
1865 次 |
| 最近记录: |