1 回答
TA贡献1851条经验 获得超5个赞
1) 在Bean Validation Api 中,组用于选择bean 的哪些字段将被验证。示例:具有地址属性的用户。
public class User {
@NotNull(groups = GroupUser.class)
String firstname;
@NotNull(groups = GroupAddress.class)
String street;
@NotNull(groups = GroupAddress.class)
String city;
}
要验证整个用户,您可以执行以下操作:
Set<ConstraintViolation<User>> constraintViolations = validator.validate(user, GroupUser.class, GroupAddress.class);
要仅验证没有地址部分的用户信息,您可以使用:
Set<ConstraintViolation<User>> constraintViolations = validator.validate(user, GroupUserName.class);
2) 有效载荷用于管理错误的严重程度。您可以实现 Payload 接口:
public class Severity {
public static class Info implements Payload {}
public static class Error implements Payload {}
}
如果您使用以下方式注释名字字段:
@NotNull(payload = {Severity.Error.class})
然后在验证之后,您可以按严重性添加一些逻辑:
for (ConstraintViolation<TestBean> violation : constraintViolations) {
Set<Class<? extends Payload>> payloads = violation.getConstraintDescriptor().getPayload();
for (Class<? extends Payload> payload : payloads) {
if (payload == Severity.Error.class) {
// logic here
}
}
}
添加回答
举报