hem*_*mal 14 java spring spring-mvc bean-validation
我<mvc:annotation-driven />在dispatcher-servlet中指定 了.我没有使用@InitBinder.
我在控制器的方法中使用@valid annotation进行验证
@RequestMapping(method = RequestMethod.POST, value = "new")
public String save(@Valid Article article,ModelMap model) {
//code here
}
Run Code Online (Sandbox Code Playgroud)
验证工作正常,但不是在html代码中显示的..示例中显示错误
<tr>
<td>Title</td>
<td><form:input path="title"/></td>
<td><form:errors path="title"/></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
它会引发异常......
org.springframework.web.util.NestedServletException:请求处理失败; 嵌套异常是org.springframework.validation.BindException:org.springframework.validation.BeanPropertyBindingResult:2 errors字段'urlInfo.url'中对象'article'中的字段错误:被拒绝的值[]; 代码[typeMismatch.article.urlInfo.url,typeMismatch.urlInfo.url,typeMismatch.url,typeMismatch.java.net.URL,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable:codes [article.urlInfo.url,urlInfo.url]; 参数[]; 默认消息[urlInfo.url]]; 默认消息[无法将类型'java.lang.String'的属性值转换为属性'urlInfo.url'所需的类型'java.net.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]字段'title'上对象'article'中的字段错误:被拒绝的值[]; 代码[Size.article.title,Size.title,Size.java.lang.String,Size]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable:codes [article.title,title]; 参数[]; 默认消息[title],{javax.validation.constraints.Size.message},6,[Ljava.lang.Class; @ 1db3aac,2147483647,[Ljava.lang.Class; @ 1e90abf];
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)
Run Code Online (Sandbox Code Playgroud)
如何配置它,不抛出异常而是返回页面并显示错误消息...
axt*_*avt 16
您应该明确决定如何处理验证错误:
@RequestMapping(method = RequestMethod.POST, value = "new")
public String save(@Valid Article article, BindingResult result, ModelMap model) {
if (result.hasErrors())
return "formView";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11912 次 |
| 最近记录: |