Я использую Spring MVC в течение 4 месяцев, но все еще не могу проверить свои формы. Вот что я пытаюсь сделать:
в моем JSP:
<form:form method="POST" action="ordertypeadd.htm" commandName="orderType">
ID Parent: <form:input path="id_parent"/><form:errors path="id_parent" /><br/>
Name: <form:input path="title"/> <form:errors path="title" /> <br/>
Description: <form:input path="description"/> <form:errors path="description" /><br/>
<input type="submit" value="Submit!" />
В моем контроллере (который расширяет MultiActionController)
@RequestMapping(value="/ordertypeadd.htm", method=RequestMethod.POST)
public ModelAndView ordertypeadd(HttpServletRequest request,
HttpServletResponse response, OrderType orderType)throws Exception{
orderTypeDAO.save(orderType);
return new ModelAndView("redirect:ordertypelist.htm");
}
В моем spring-servlet.xml:
<bean name="/ordertypeadd.htm" class="pl.edm.orders.spring.OrderTypeController">
<property name="orderTypeDAO" ref="myOrderTypeDAO" />
<property name="validators">
<list>
<ref bean="myOrderTypeValidator"/>
</list>
</property>
</bean>
Конечно, мой «myOrderTypeValidator»:
<bean id="myOrderTypeValidator" class="pl.edm.orders.spring.OrderTypeValidator">
И мой класс Validator (пока он проверяет только описание "title"):
public class OrderTypeValidator implements Validator{
public boolean supports(Class arg0) {
return OrderType.class.equals(arg0);
}
public void validate(Object arg0, Errors arg1) {
ValidationUtils.rejectIfEmpty(arg1, "title", "title");
}
}
Компилируется нормально, и все работает, кроме того, когда я заполняю форму, я получил это:
org.springframework.web.bind.ServletRequestBindingException: ошибки
привязка к объекту «команда»; вложенное исключение
org.springframework.validation.BindException:
org.springframework.validation.BeanPropertyBindingResult: 1 ошибка
Ошибка поля в объекте 'команда' в поле 'заголовок': отклоненное значение [];
коды [title.command.title, title.title, title.java.lang.String, title];
аргументы []; сообщение по умолчанию [null]
org.springframework.web.bind.ServletRequestDataBinder.closeNoCatch (ServletRequestDataBinder.java:122)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.bind (MultiActionController.java:540)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod (MultiActionController.java:468)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal (MultiActionController.java:408)
org.springframework.web.servlet.mvc.AbstractController.handleRequest (AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle (SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:790)
org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.java:719)
org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:669)
org.springframework.web.servlet.FrameworkServlet.doPost (FrameworkServlet.java:585)
javax.servlet.http.HttpServlet.service (HttpServlet.java:641)
javax.servlet.http.HttpServlet.service (HttpServlet.java:722)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:76) * * тысяча двадцать-одна
первопричина
org.springframework.validation.BindException:
org.springframework.validation.BeanPropertyBindingResult: 1 ошибка
Ошибка поля в объекте 'команда' в поле 'заголовок': отклоненное значение [];
коды [title.command.title, title.title, title.java.lang.String, title];
аргументы []; сообщение по умолчанию [null]
org.springframework.web.bind.ServletRequestDataBinder.closeNoCatch (ServletRequestDataBinder.java:124)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.bind (MultiActionController.java:540)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod (MultiActionController.java:468)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal (MultiActionController.java:408)
org.springframework.web.servlet.mvc.AbstractController.handleRequest (AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle (SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:790)
org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.java:719)
org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:669)
org.springframework.web.servlet.FrameworkServlet.doPost (FrameworkServlet.java:585)
javax.servlet.http.HttpServlet.service (HttpServlet.java:641)
javax.servlet.http.HttpServlet.service (HttpServlet.java:722)org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.j25:76 *) * 1026