Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Spring没有运行我的验证器?_Spring_Spring Mvc - Fatal编程技术网

为什么Spring没有运行我的验证器?

为什么Spring没有运行我的验证器?,spring,spring-mvc,Spring,Spring Mvc,我正在使用SpringMVC,我正在制作一个验证器,但Spring似乎从未运行过它 这是我的验证器,现在很简单,只需检查两个字段 public class MemberRequestValidator implements Validator { public boolean supports(Class aClass) { return MemberRequest.class.equals(aClass); } public void valida

我正在使用SpringMVC,我正在制作一个验证器,但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);
        }


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

            <form:form modelAttribute="memberrequest"  action="${saveUrl}" name="memberrequest" id="memberrequest">
@InitBinder(“成员请求”)
public void initMemberRequestBinder(WebDataBinder绑定器){
binder.setValidator(newmemberrequestvalidator());
}
@RequestMapping(value=“/save”,method=RequestMethod.POST)
公共模型和视图保存请求(@modeldattribute@Valid MemberRequest mr,BindingResult)
{
if(result.hasErrors())
{
debug(“页面有错误…返回到输入页面”);
返回新模型和视图(“问题”);
}
其他的
{
String Ticket=mService.sentWebRequest(mr);
映射模型=新的HashMap();
票证t=新票证();
t、 设置票证详情(票证);
模型。put(“票”,t);
返回新模型和视图(“谢谢”,模型);
}
}
在我的JSP页面中,我有以下内容:

 @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);
        }


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

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


因此,如果我没有在表单中输入任何数据,我应该点击错误,但我没有?

尝试处理程序中的
@modeldattribute(“memberrequest”)
或表单中的modeldattribute=“memberrequest”和
@initBinder(“memberrequest”)