2013-03-07 3 views
1

Я использую Spring MVC, и я делаю валидатор, но похоже, что Spring никогда не запускает его.Почему Spring не работает с моим валидатором?

Вот мой валидатор является простым один прямо сейчас просто проверка двух полей

public class MemberRequestValidator implements Validator { 

    public boolean supports(Class aClass) { 
     return MemberRequest.class.equals(aClass); 
    } 

    public void validate(Object obj, Errors errors) { 

     MemberRequest mr = (MemberRequest) obj; 

     ValidationUtils.rejectIfEmptyOrWhitespace(errors, "content", "Content field is Required"); 

     ValidationUtils.rejectIfEmptyOrWhitespace(errors, "areacode", "Area code field is Required"); 


    } 

} 

Теперь мой контроллер выглядит следующим образом:

@InitBinder("memberrequest") 
    public void initMemberRequestBinder(WebDataBinder binder) { 
     binder.setValidator(new MemberRequestValidator()); 
    } 



    @RequestMapping(value = "/save", method = RequestMethod.POST) 
    public ModelAndView saveRequest(@ModelAttribute @Valid MemberRequest mr, BindingResult result) 
    { 

     if (result.hasErrors()) 
     { 
      LOGGER.debug("Pages had errors on it... returning to input page"); 
       return new ModelAndView("question"); 
     } 
     else 
     { 
       String Ticket = mService.sentWebRequest(mr); 

       Map<String, Object> model = new HashMap<String, Object>(); 
       Ticket t = new Ticket(); 
       t.setTicketDetails(Ticket); 

       model.put("ticket", t); 

       return new ModelAndView("thanks", model); 
     } 


    } 

и в моей странице JSP У меня есть следующие :

<c:url var="saveUrl" value="/mrequest/save.html" /> 

      <form:form modelAttribute="memberrequest" action="${saveUrl}" name="memberrequest" id="memberrequest"> 

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

ответ

2

Попробуйте с @ModelAttribute("memberrequest") в обработчике или modelAttribute = "memberRequest" в форме и @initBinder("memberRequest")