restored SpringValidatorAdapter's ability to handle bean constraints with property paths (SPR-8895)

This commit is contained in:
Juergen Hoeller 2011-12-05 22:37:55 +00:00
parent 27471e0555
commit aedccec67e
1 changed files with 6 additions and 1 deletions

View File

@ -127,8 +127,13 @@ public class SpringValidatorAdapter implements SmartValidator, javax.validation.
errors.getObjectName(), errorCodes, errorArgs, violation.getMessage()); errors.getObjectName(), errorCodes, errorArgs, violation.getMessage());
} }
else { else {
Object invalidValue = violation.getInvalidValue();
if (!"".equals(field) && invalidValue == violation.getLeafBean()) {
// bean constraint with property path: retrieve the actual property value
invalidValue = bindingResult.getRawFieldValue(field);
}
error = new FieldError( error = new FieldError(
errors.getObjectName(), nestedField, violation.getInvalidValue(), false, errors.getObjectName(), nestedField, invalidValue, false,
errorCodes, errorArgs, violation.getMessage()); errorCodes, errorArgs, violation.getMessage());
} }
bindingResult.addError(error); bindingResult.addError(error);