如何检查bean中的哪个字段实际上存在违规?
考虑以下代码:
Set<ConstraintViolation<Contact>> violations = validator.validate(contact);
if(violations.isEmpty()) {
} else {
violations.forEach(violation -> {
// Check which field bean field had a violation
});
}
你可以这样做:
if(fieldWithError.equals("email") && (error instanceof ShouldBeGmail)) {
doThis();
} else if(fieldWithError.equals("phoneNumber") && (error instanceof ShouldBeWithinCountry)) {
doThat();
}
应该可以:
if(violations.isEmpty()) {
} else {
violations.forEach(violation -> {
String fieldName = violation.getPropertyPath().toString();
});
}