Spring 3.1 に感謝します。RedirectAttributes.addFlashAttribute を使用して Post/Redirect/Get を実行できますが、小さな問題があるようです
フォーム オブジェクトを保持し、ビューにリダイレクトしてそのフォーム オブジェクトを表示するメソッドを次に示します。
@RequestMapping(value = "/{formType}/onTheEarch", method = RequestMethod.POST)
public String submitAndRedirect(SomeWebForm someWebForm,
@PathVariable("formType") String formType,
final RedirectAttributes redirectAttributes) {
// do something according to formType
// .......
redirectAttributes.addFlashAttribute("webObject", webObject);
String view = "redirect:/formType/toTheMoon";
}
フォームオブジェクトを表示するビューにユーザーを誘導する方法は次のとおりです
@RequestMapping(value = "/{formType}/toTheMoon", method = RequestMethod.GET)
public String submitAndRedirect(@PathVariable("formType") String formType) {
// do something according to formType
// .......
String view = "toTheMoon";
}
ここまでは良いのですが、一つだけ欠点があります。ビューを更新するとtoTheMoon
、すべてがなくなります。だからここでの質問は
(1)How does `RedirectAttributes.addFlashAttribute` works?
(2)How can I keep the object from "FlashAttribute" even after refreshing the page?
2 番目の質問についてはRedirectAttributes.addFlashAttribute
、URL に任意のパラメーターを渡して を実装することRGP pattern
は回避できますが、パラメーター値は機密であり、ブラウザーでユーザーに公開するべきではないため、これを避けるようにしています。じゃあ何をすればいいの?