springMVC数据验证出现404错误解决办法

  今天使用springMVC的数据验证的时候,看似很简单的东西,却有一个很大的陷阱:提交空表单的时候总是出现404错误,但是后台却不给你报任何错。遇到这个错误这个很苦恼,搞了几小时,今天记录并分享一下解决经验(本人使用注解式的数据验证):

  错误例子:

@RequestMapping(value="/login",method=RequestMethod.POST)
    public String login(@Valid @ModelAttribute("contentModel") LoginModel lm,Model model,BindingResult result) 
            throws NoSuchAlgorithmException{        
        if(result.hasErrors())
            return login(model);
        return "login_ok";
    }

  造成这个原因的因为我们随意放置下面login()方法的参数,springMVC的参数顺序应该是BindingResult必须跟随在自定义的模型之后,所应正确的做法是:

public String login(Model model,@Valid @ModelAttribute("contentModel") LoginModel lm,BindingResult result) 
            throws NoSuchAlgorithmException{        
        if(result.hasErrors())
            return login(model);
        return "login_ok";
    }

  只要保持  @Valid @ModelAttribute("contentModel") LoginModel lm,BindingResult result  这个顺序,在他们前面加HttpServletRequest,HttpServletResponse都没问题。

  本人初学springMVC不久,欢迎大家指出错误。

posted @ 2015-03-06 20:01  Gin.p  阅读(1663)  评论(1编辑  收藏  举报