Проверка Spring MVC в MultiActionController - PullRequest
0 голосов
/ 30 августа 2011

Я использую 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

1 Ответ

0 голосов
/ 30 января 2013

может быть, вы уже исправили ошибку, но в случае, если у кого-то еще есть такая же ошибка, вы можете попробовать добавить конструктор в класс модели.уверен, что это будет работать на ваш, но это работает в моем проекте.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...