springMVC資料驗證出現404錯誤解決辦法

Gin.p發表於2015-03-06

  今天使用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不久,歡迎大家指出錯誤。

相關文章