我有以下顺序。
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 属性在重定向之前临时保存(通常在会话中),以便在重定向之后可用于请求并立即删除。”。因此,选项卡会相互覆盖,因为会话中的模型已更新。