org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResu

最近在項目中發現以下異常:html

六月 25, 2015 5:58:34 下午 org.apache.catalina.core.StandardWrapperValve invoke
嚴重: Servlet.service() for servlet springMVC threw exception
org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'recordFileLostMonitorVo' on field 'checkResult': rejected value []; codes [methodInvocation.recordFileLostMonitorVo.checkResult,methodInvocation.checkResult,methodInvocation.long,methodInvocation]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [recordFileLostMonitorVo.checkResult,checkResult]; arguments []; default message [checkResult]]; default message [Property 'checkResult' threw exception; nested exception is java.lang.IllegalArgumentException]
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doBind(HandlerMethodInvoker.java:810)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:359)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)
 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
 at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at com.speed.base.filter.Log4jUserFilter.doFilter(Log4jUserFilter.java:29)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
 at java.lang.Thread.run(Thread.java:722)java

 

跟蹤字段發現原來是下拉框<option>中參數賦值錯誤致使,詳見以下:web

原來的html:spring

<select id="checkResult" name="checkResult">
  <option value="">所有</option>
     <option value="0">不存在</option>
     <option value="1">已存在</option>apache

</select>tomcat

後臺用的是mybatis,而對應的vo中定義的checkResult是long類型,因此致使把空字符串賦值給long類型的checkResult時發生瞭如上的異常,修改以下:mybatis

<select id="checkResult" name="checkResult">
  <option value="-1">所有</option>
     <option value="0">不存在</option>
     <option value="1">已存在</option>
mvc

</select>app

相關文章
相關標籤/搜索