首页 新闻 会员 周边

Springmvc表单验证问题

0
悬赏园豆:50 [已解决问题] 解决于 2016-12-10 21:15

我采用了Springmvc Validator进行表单验证,部分代码如下:

Contriller类:

VaildAccount类:

Account类

 

错误信息:

我提交的是一个空表单,即表单没有填写任务内容,出现如下错误信息:

望大神指出哪里出错了

严重: Servlet.service() for servlet [myjpetstore] in context with path [/myjpetstores] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Invalid target for Validator [org.springframework.samples.myjpetstores.io.VaildAccount@6e5ab186]: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'account' on field 'password': rejected value []; codes [account.password,password,java.lang.String,]; arguments []; default message [password is required]] with root cause
java.lang.IllegalStateException: Invalid target for Validator [org.springframework.samples.myjpetstores.io.VaildAccount@6e5ab186]: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'account' on field 'password': rejected value []; codes [account.password,password,java.lang.String,]; arguments []; default message [password is required]
at org.springframework.validation.DataBinder.assertValidators(DataBinder.java:542)
at org.springframework.validation.DataBinder.setValidator(DataBinder.java:533)
at org.springframework.samples.myjpetstores.controller.AccountController.initBinder(AccountController.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.initBinder(HandlerMethodInvoker.java:408)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.updateModelAttributes(HandlerMethodInvoker.java:226)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:443)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

Hxinguan的主页 Hxinguan | 初学一级 | 园豆:152
提问于:2016-11-26 16:49
< >
分享
最佳答案
0

@Valid?

收获园豆:50
让我发会呆 | 老鸟四级 |园豆:2929 | 2016-11-29 17:31

不是,我改成了在POJO属性上直接加注解的形式了,这就好了

Hxinguan | 园豆:152 (初学一级) | 2016-12-10 21:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册