SimpleFormController , Validator, 简单的register.jsp上有简单的<spring:bind> tag .
出错如下:
javax.servlet.ServletException: ModelAndView [ModelAndView: materialized View is [null]; model is {command=org.springframework.samples.jpetstore.web.srx.register.RegisterInfo@c71c00, org.springframework.validation.BindException.command=org.springframework.validation.BindException: BindException: 1 errors; Field error in object 'command' on field 'username': rejected value [sdf]; codes [less4chars.command.username,less4chars.username,less4chars.java.lang.String,less4chars]; arguments []; default message [?????????4???]}] neither contains a view name nor a View object in servlet with name 'petstore' org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:980) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:764) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:681) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:395) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:359) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) javax.servlet.http.HttpServlet.service(HttpServlet.java:810) 原因往往是servletname-servlet.xml中Controller或者相关validator bean的属性名字写错了,本例, <!-- registe validator --> <bean id="RegisterValidator" class="org.springframework.samples.jpetstore.web.srx.register.RegisterValidator"/> <bean name="/myregister.do" class="org.springframework.samples.jpetstore.web.srx.register.RegisterAction"> <!-- <property name="commandName"><value>kao</value></property> --> <property name="commandClass"> <value>org.springframework.samples.jpetstore.web.srx.register.RegisterInfo</value> </property> <property name="validator"> <ref local="RegisterValidator"/> </property> <property name="formview"> // 这里应该是formView,改后就运行正常。 <value>/register/register</value> </property> <property name="success_view"> <value>/register/registerSuccess</value> </property> </bean> 此错误一般很难发现,不好调试。
