SpringMVC 400 Bad Request 問題

在提交表單時,發生400錯誤,並未進入save方法。java

@RequestMapping(value="/!save",method = RequestMethod.POST)
    public String save(@ModelAttribute("user") @Valid UserEntity user,
      Locale local,
      BindingResult results){
        String message = messageSource.getMessage("name.not.empty", null, local);
        System.out.println(message);
        if(results.hasErrors())
            return "/user/add";
        return "redirect:/user/list";
    }

經google後,發現大可能是由於表單數據類型與model不匹配,形成。
可是,通過一再減小model內容後,提交表單,問題依舊。
終於在iteye論壇發現:springMVC參數順序不一樣致使異常spring

約定的BindingResult必須緊隨@valid以後。    
mvc

原來我這裏的400是這個緣由致使的。如下爲正確順序:app

@RequestMapping(value="/!save",method = RequestMethod.POST)
    public String save(@ModelAttribute("user") @Valid UserEntity user,
      BindingResult results,
      Locale local){
        String message = messageSource.getMessage("name.not.empty", null, local);
        System.out.println(message);
        if(results.hasErrors())
            return "/user/add";
        return "redirect:/user/list";
    }

在解決問題以後,作一下總結:
springmvc形成400錯誤的緣由如今知道的有如下兩點:google

一、提交表單數據類型與model不匹配
二、方法參數順序不正確
還有別的場景嗎?但願你們補充。
code

相關文章
相關標籤/搜索