2010-01-16 1 views
14

Я указал <mvc:annotation-driven /> в диспетчере-сервлете. Я не использую @InitBinder.
И я использую @valid аннотацию для проверки в методе контроллера, какНе показывать сообщения об ошибках при проверке с помощью @valid (JSR-303) весной MVC

@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 Ошибки ошибка в поле объекта '' статьи на поле '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]; arguments []; сообщение по умолчанию [urlInfo.url]]; сообщение по умолчанию [Не удалось преобразовать значение свойства типа 'java.lang.String' в требуемый тип 'java.net.URL' для свойства 'urlInfo.url'; inest exception is org.springframework.core.convert.ConversionFailedException: Невозможно преобразовать значение из типа 'java.lang.String' в тип 'java.net.URL'; inest exception is org.springframework.core.convert.ConversionFailedException: Невозможно преобразовать значение из типа 'java.lang.String' в тип 'java.net.URL'; вложенное исключение: java.lang.reflect.InvocationTargetException] Полевая ошибка в статье объекта ' Поле' title ': отклонено значение []; коды [Размер.title, размер.title, Size.java.lang.String, Размер]; аргументы [org.springframework.context.support.DefaultMessageSourceResolvable: коды [article.title, 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) 

Как настроить, чтобы не бросить исключение, и вместо того, чтобы вернуться на страницу и показывать сообщения об ошибках ...

+0

Как вы включили проверку?Используя '@ InitBinder' на вашем контроллере или' 'в вашем контексте? Какой бы вы ни использовали, добавьте эти биты в свой вопрос. – skaffman

ответ

16

Вы должны явно решить, что делать с ошибками проверки:

@RequestMapping(method = RequestMethod.POST, value = "new") 
public String save(@Valid Article article, BindingResult result, ModelMap model) { 
    if (result.hasErrors()) 
     return "formView"; 
17

в вашем методе обработчика контроллера, убедитесь, что аргумент BindingResult сразу после комм и аргумент.

+1

Это должно было исправить ответ для меня. –

+0

Очень странно, но это сработало и для меня. Мне всегда говорили, что весна может самостоятельно определить параметры метода контроллера, и мне никогда не придется беспокоиться о них! Но это, по крайней мере, один случай, когда порядок параметров влияет на выполнение! – Jaywalker

 Смежные вопросы

  • Нет связанных вопросов^_^