我有一个运行 Spring 3.0 并使用 Spring-MVC 的 Web 应用程序。我有几个像这样设置的 Controller :
@Controller
@RequestMapping("/admin")
@SessionAttributes({"clientLogin", "selectTab", "user", "redirectUrl"})
public class AdminController {
...
}
@Controller
@SessionAttributes({"clientLogin", "selectTab", "user", "redirectUrl"})
public class PublicController {
....
}
我可以将带注释的变量添加到 ModelMap 中,例如
map.addAttribute("user", "Bob");
这可以很好地将变量保留在当前 Controller 中;我可以从该 Controller 中的任何其他方法访问 modelMap 中的 var。但是,当用户点击另一个 Controller 中的页面时,即使 @SessionAttributes 中列出了相同的变量,它在第二个 Controller 中也不可用。
是否可以使用注释跨多个 Controller 访问这些带注释的变量?
最佳答案
不,这是不可能的 - 在我看来,SessionAttributes 的命名很糟糕。
如果您想在不同的 Controller 之间共享这些属性,您可以使用以下方法显式地将它们放入 session 中:
session.setAttribute()
关于spring - 是否可以跨多个 Controller 访问 Spring MVC 带注释的 session 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3934477/