感谢 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?
我知道对于第二个问题,我们可以避免RedirectAttributes.addFlashAttribute
并且只传递 URL 中的任何参数来实现RGP pattern
. 那么该怎么办?