ModelAttributeとBindingResult
Spring MVCのコントローラでValidationの結果を調べたり追加したりするためのBindingResult。ハンドラメソッドの引数の順番があるとは思わず、少しはまってた。
// ダメな例 @RequestMapping(method = RequestMethod.POST) public String processSubmit(@ModelAttribute("pet") Pet pet, Model model, BindingResult result) { … }
// 正しい例 @RequestMapping(method = RequestMethod.POST) public String processSubmit(@ModelAttribute("pet") Pet pet, BindingResult result, Model model) { … }
BindingResultは対応するModelAttributeの引数のすぐ後に書かないとダメらしい。