使用SimpleFormContrller , Validator , 还有简单的register.jsp with <spring:bind> to show error message.
也会出现一些错误,翻译为“页面上<spring:bind path="command.*">中的command和定义的不一样”。
javax.servlet.jsp.JspTagException: Neither Errors instance nor plain target object for bean name 'command' available as request attribute
org.springframework.web.servlet.tags.BindTag.doStartTagInternal(BindTag.java:118)
org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:68)
org.apache.jsp.WEB_002dINF.jsp.spring.register.register_jsp._jspService(register_jsp.java:84)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:97)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:989)
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.doGet(FrameworkServlet.java:349)
javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
原因通常是servletname-servlet.xml中此SimpleFormController可以不配置commanName,此时jsp
使用command表示绑订的数据,一旦配置了commandName属性,jsp就必须使用此value代替
command。
例如:
<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> -->
//此时jsp页面使用command, 如果打开注释,jsp页面就必须使用kao来表示绑订的数据。
<property name="commandClass">
<value>org.springframework.samples.jpetstore.web.srx.register.RegisterInfo</value>
</property>
<property name="validator">
<ref local="RegisterValidator"/>
</property>
... 略