У меня есть проект, использующий Spring 3 MVC и средство проверки гибернации для проверки объекта формы.
Я следую за документом Spring
В моем контроллере я могу получить результат привязки,который bindingresult.hasErrors() == true
.
Я использую ReloadableResourceBundleMessageSource
для привязки сообщения об ошибке.
И мой вопрос: Возможно ли, что у меня может быть более гибкое отображение сообщения об ошибкена моей странице JSP?
Например, я хочу сказать, что «имя приложения UserEnteredAppName недопустимо. Размер должен быть между 2 и 255 ».
В моем сообщении message.property я определяю:
Size.appNameForm.itemName=the app name {What Should I do in this brace?} is not valid. The size should be between {1} and {2}
{1} и {2} могут быть интерполированы до '2' и '255'.но как я могу получить UserEnteredAppName в интерполированном сообщении?
Ниже приведены мой класс формы и класс контроллера:
Мой класс контроллера:
@RequestMapping(value="foo.htm")
public String handleAppNameFormSubmit(@Valid @ModelAttribute("appNameForm") AppNameForm form, BindingResult result){
}
Мой класс формы:
public class AppNameForm implements IForm{
@NotEmpty
@Size(min = 1, max = 255)
private String itemName;
....
}
Я нахожу несколько ссылок, которые дают мне подсказку:
, например: Как динамически разрешить параметры сообщения с помощью Hibernate Validator?
Но я использую Spring mvc и Spring Controll, который использует реализация jsr303, я не могу найти способ использовать собственный валидатор, расширяющий стандартное значение ValidatorImpl в hibernate.
Что я думаю, решение, я могу иметь собственный валидатор, который будет отклонять UserEnteredAppName в bindingResult.Является ли это возможным?или я должен найти другой путь?
Спасибо, Андрей