2013-03-07 56 views
1

我使用的是Spring MVC,我正在制作一个Validator,但它看起来像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")

相关问题