1 回答

TA貢獻1851條經(jīng)驗 獲得超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;
}
要驗證整個用戶,您可以執(zhí)行以下操作:
Set<ConstraintViolation<User>> constraintViolations = validator.validate(user, GroupUser.class, GroupAddress.class);
要僅驗證沒有地址部分的用戶信息,您可以使用:
Set<ConstraintViolation<User>> constraintViolations = validator.validate(user, GroupUserName.class);
2) 有效載荷用于管理錯誤的嚴重程度。您可以實現(xiàn) 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
}
}
}
添加回答
舉報