Ho specificato <mvc:annotation-driven />
in dispatcher-servlet. Non sto usando @InitBinder.
e sto usando l'annotazione @valid per la convalida del metodo di controllo comeNon vengono visualizzati messaggi di errore se convalidati utilizzando @valid (JSR-303) in Spring MVC
@RequestMapping(method = RequestMethod.POST, value = "new")
public String save(@Valid Article article,ModelMap model) {
//code here
}
e validazione funziona bene, ma invece di mostrare errore .. campione mostrato nel codice html
<tr>
<td>Title</td>
<td><form:input path="title"/></td>
<td><form:errors path="title"/></td>
</tr>
Getta eccezione come ..
org.springframework.web.util.NestedServletException: Elaborazione richiesta fallito; annidata eccezione è org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 2 errori errore campo in oggetto 'articolo' sul campo 'urlInfo.url': valore respinto []; codes [typeMismatch.article.urlInfo.url, typeMismatch.urlInfo.url, typeMismatch.url, typeMismatch.java.net.URL, typeMismatch]; argomenti [org.springframework.context.support.DefaultMessageSourceResolvable: codici [article.urlInfo.url, urlInfo.url]; argomenti []; messaggio predefinito [urlInfo.url]]; messaggio predefinito [Impossibile convertire il valore della proprietà di tipo 'java.lang.String' su richiesto digitare 'java.net.URL' per la proprietà 'urlInfo.url'; l'eccezione annidata è org.springframework.core.convert.ConversionFailedException: Impossibile convertire il valore dal tipo 'java.lang.String' per digitare 'java.net.URL'; l'eccezione annidata è org.springframework.core.convert.ConversionFailedException: Impossibile convertire il valore dal tipo 'java.lang.String' per digitare 'java.net.URL'; l'eccezione annidata è java.lang.reflect.InvocationTargetException] Errore di campo nell'oggetto 'articolo' sul campo 'titolo': valore rifiutato []; codici [Size.article.title, Size.title, Size.java.lang.String, Size]; argomenti [org.springframework.context.support.DefaultMessageSourceResolvable: codici [article.title, title]; argomenti []; messaggio predefinito [title], {javax.validation.constraints.Size.message}, 6, [Ljava.lang.Class; @ 1db3aac, 2147483647, [Ljava.lang.Class; @ 1e90abf]; messaggio predefinito [dimensione deve essere compresa tra 6 e 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)
come configurarlo, non un'eccezione e invece tornare a messaggi di errore di pagina e mostrare ...
Come è stata abilitata la convalida?Usando '@ InitBinder' sul tuo controller, o' 'nel tuo contesto? Qualunque cosa tu stia usando, per favore aggiungi quei bit alla tua domanda. –
skaffman