現時点では、Spring MVC 3.1でPost/Redirect/Getパターンを実装しようとしています。モデルデータと検証エラーを保存して回復する正しい方法は何ですか?私はモデルとBindingResultを私のPOSTメソッドのRedirectAttributesで保持できることを知っています。しかし、フラッシュスコープからGETメソッドでそれらを回復する正しい方法は何ですか?Post/Redirect/Getパターンでモデル状態を保持する
私はPOSTに次のことを行っている:
@RequestMapping(value = "/user/create", method = RequestMethod.POST)
public String doCreate(@ModelAttribute("user") @Valid User user, BindingResult result, RedirectAttributes rA){
if(result.hasErrors()){
rA.addFlashAttribute("result", result);
rA.addFlashAttribute("user", user);
return "redirect:/user";
}
return "redirect:/user/success";
}
とユーザー作成フォームをGETするには、次
@RequestMapping(value = "/user", method = RequestMethod.GET)
public ModelAndView showUserForm(@ModelAttribute("user") User user, ModelAndView model){
model.addObject("user", user);
model.setViewName("userForm");
return model;
}
これは私がANの場合に与えられたユーザデータを保存することができますエラー。しかし、エラーを回復する正しい方法は何ですか(BindingResult)私は春のフォームタグ付き形式でそれらを表示したい:?
<form:errors path="*" />
加えて、それからフラッシュスコープにアクセスする方法を興味深いものになるだろうgetメソッド?
これは質問の全体を逃します。彼はPOSTで画面を返すことを避けようとしています。なぜなら、ブラウザが投稿されたフォームをどのように扱うかということです。ユーザーがリフレッシュするか、または戻るとフォームが再ポストされ、サーバー上で状態が2回修正される可能性があります。 getを使って元のフォームに戻すほうがはるかに優れています。 – chubbsondubs