RedirectionAttributes を介して BindingResult を渡そうとしています。
Spring - Redirect after POST (検証エラーがあっても)を参照しましたが、まだスタックしています。
私はGETメソッドを持っています:
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String test(@ModelAttribute("exampleForm") final ExampleForm exampleForm, final Model model)
{
return "test";
}
および POST メソッド:
@RequestMapping(value = "/doSomething", method = RequestMethod.POST)
public String doSomething(@Valid @ModelAttribute("exampleForm") final ExampleForm exampleForm, final BindingResult bindingResult, final RedirectAttributes redirectAttributes)
{
if (bindingResult.hasErrors())
{
redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.exampleForm", bindingResult);
redirectAttributes.addFlashAttribute("exampleForm", exampleForm);
return "redirect:/test";
}
}
ただし、POST メソッドでそれらを受け取ったときに、GET メソッドのモデル (リダイレクト後) でバインド エラーが表示されません。それらは消えているようです。
POST メソッドの bindingResult オブジェクトは次のとおりです。
org.springframework.validation.BeanPropertyBindingResult: 1 errors
エラー 0 を示す GET メソッドのモデル エントリを次に示します。
org.springframework.validation.BindingResult.exampleForm=org.springframework.validation.BeanPropertyBindingResult: 0 errors
どんな助けでも大歓迎です。