Связывать глобальные ошибки, возникающие при проверке формы, с конкретными полями формы весной - PullRequest
3 голосов
/ 18 августа 2011

Возможно ли это сделать?
Я сделал пользовательскую аннотацию, которая проверяет, равны ли 2 поля от здесь .
Я хотел бы проверить, если поле «пароль» равно другому полю «подтвержденный пароль». Теперь, если это не так, я бы хотел, чтобы отображалось сообщение об ошибке, связанное с полем подтвержденного пароля. Я отображаю ошибки в JSP с <form:errors path="" />. Есть ли другой способ сделать это? Также в этой аннотации могут быть еще 2 поля email и confirmedEmail. Как я могу сделать различие между тем, какую глобальную ошибку поместить куда ...

Надеюсь, все это имеет смысл ..

1 Ответ

5 голосов
/ 19 августа 2011

Эта тема на форумах Hibernate Validator, по-видимому, указывает на то, что вы хотите добавить что-то вроде следующего кода в метод isValid () вашего собственного средства проверки:

https://forum.hibernate.org/viewtopic.php?f=9&t=1003351&view=next

constraintValidatorContext.disableDefaultConstraintViolation();
constraintValidatorContext.buildConstraintViolationWithTemplate( errorMessage ).addNode("confirmPassword").addConstraintViolation();

Бит .addNode("confirmPassword") выглядит из документов так, как будто он настроит путь ошибки:

http://download.oracle.com/javaee/6/api/javax/validation/ConstraintValidatorContext.html#buildConstraintViolationWithTemplate%28java.lang.String%29

Тогда вы сможете отобразить только ошибку для verifyPassword с помощью path="confirmPassword" в вашем теге ошибки.

...