Я указал <mvc:annotation-driven />
в диспетчере-сервлете.
Я не использую @InitBinder.
И я использую аннотацию @valid для проверки в методе контроллера, например
@RequestMapping(method = RequestMethod.POST, value = "new")
public String save(@Valid Article article,ModelMap model) {
//code here
}
И проверка работает отлично, но вместо того, чтобы показывать ошибку в.. образец, показанный в html-коде
<tr>
<td>Title</td>
<td><form:input path="title"/></td>
<td><form:errors path="title"/></td>
</tr>
Он выдает исключение, подобное..
org.springframework.web.util.NestedServletException: Обработка запроса не выполнена; вложенными исключение org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 2 ошибки Полевая ошибка в объекте 'article' в поле 'urlInfo.url': отклоненное значение []; коды [TypeMismatch.article.urlInfo.url, typeMismatch.urlInfo.url, typeMismatch.url, typeMismatch.java.net.URL, typeMismatch]; аргументы [Org.springframework.context.support.DefaultMessageSourceResolvable: коды [Article.urlInfo.url, urlInfo.url]; аргументы []; сообщение по умолчанию [UrlInfo.url]]; сообщение по умолчанию Не удалось преобразовать значение свойства введите "java.lang.String" в требуемый type 'java.net.URL' для свойства 'UrlInfo.url'; вложенное исключение org.springframework.core.convert.ConversionFailedException: Невозможно преобразовать значение из типа 'java.lang.String' для ввода типа 'Java.net.URL'; вложенное исключение org.springframework.core.convert.ConversionFailedException: Невозможно преобразовать значение из типа 'java.lang.String' для ввода типа 'Java.net.URL'; вложенное исключение java.lang.reflect.InvocationTargetException] Ошибка поля в объекте 'article' on поле 'title': отклоненное значение []; коды [Size.article.title, Size.title, Size.java.lang.String, размер]; аргументы [Org.springframework.context.support.DefaultMessageSourceResolvable: коды [article.title, title]; аргументы []; сообщение по умолчанию [Название], {} javax.validation.constraints.Size.message, 6, [Ljava.lang.Class; @1db3aac, 2147483647, [Ljava.lang.Class; @1e90abf]; сообщение по умолчанию [размер должен быть между 6 и 2147483647]
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:659)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213)
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
Как настроить его, не генерировать исключение и вместо этого вернуться на страницу и показать сообщения об ошибках...