Есть ли эквивалент метода variableMap(IValidate) в Wicket для JSR303 с Spring MVC?

С помощью Wicket я могу добавлять свои собственные переменные в сообщения обратной связи (через Map) об ошибках проверки, используя метод variableMap(IValidate) в пользовательском классе проверки, который расширяет AbstractValidator.

Есть ли механизм, позволяющий сделать то же самое с проверкой JSR303 в веб-формах с использованием Spring MVC?

Я написал свой собственный валидатор в JSR303, и я хотел бы добавить некоторую дополнительную информацию в свои сообщения обратной связи формы.

Вот пример: Убедитесь, что дата начала и окончания праздника не конфликтует со списком существующих праздников. Таким образом, сообщение обратной связи в файле свойств будет выглядеть примерно так: «Дата {holidayDate}, которую вы ввели, конфликтует с {existingHolidayInSystem}».

Заранее благодарим за любую помощь, которую вы можете предоставить.


person Sausage    schedule 19.02.2012    source источник


Ответы (1)


В пользовательском ограничении вы можете попытаться воссоздать сообщение внутри валидатора:

ctx.disableDefaultConstraintViolation();
ctx.buildConstraintViolationWithTemplate("New message").addConstraintViolation();
person Slava Semushin    schedule 20.02.2012
comment
Спасибо @php-coder, я попробую завтра и дам вам знать, как это работает. - person Sausage; 21.02.2012
comment
Я потратил много времени на это сегодня ... приведенный выше код дает мне сообщение, но оно не отображается в моей веб-форме (хотя я вижу его в трассировке консоли моего сервера). Кроме того, я создаю сообщение в коде, и я бы предпочел, чтобы оно было в файле свойств, как я указал выше. Я обнаружил, что этот сайт является хорошим источником информации Информация о JBoss Hibernate - person Sausage; 22.02.2012
comment
Вы видели сообщения об ошибках с <form:errors />? (без атрибута path? - person Slava Semushin; 22.02.2012