我有以下顺序。
View1(POST 表单)-> PostController(创建模型和重定向)-> GetController -> View2
我正在使用 RedirectAttributes 在 PostController 和 GetController 之间传递模型,我有
类 PostController {
public String mypost(..., final RedirectAttributes redirectAttrs){
//创建模型
redirectAttrs.addFlashAttribute("model", model);
返回“重定向:myget”;
}
}
和
@SessionAttributes("模型")
类获取控制器 {
public ModelAndView myget(@ModelAttribute("model") final Model model){
ModelAndView mav = new ModelAndView("view2");
mav.addObject("模型", 模型);
返回mav;
}
}
当用户在浏览器上打开多个选项卡,然后刷新之前的选项卡时,它将被后面打开的选项卡覆盖。
我希望每个标签都是独立的,希望有人指出我正确的方向。
谢谢。
编辑
问题出在@SessionAttributes("model")。我使用它是因为“Flash 属性在重定向之前临时保存(通常在会话中),以便在重定向之后可用于请求并立即删除。”。因此,选项卡会相互覆盖,因为会话中的模型已更新。