spring - 是否可以跨多个 Controller 访问 Spring MVC 带注释的 session 变量?

标签 spring session spring-mvc controller session-variables

我有一个运行 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/

相关文章:

javascript - echo php 变量在backbone.js 模板中

java - 频繁发送到spring-websocket session : lost in transit

html - War 文件不会显示图像/CSS/JS/HTML

spring - 如何在 Spring MVC 中将复选框值传递给 Controller

java - 如何在jsf中使用 session 过滤器作为登录表单

javascript - 如何使用 javascript 启用和禁用按钮?

java - Eclipse&Maven - 导入org.hibernate.boot.无法解析

java - Grails 与 REST 的 Spring 性能

spring - JPA 2.1 中带有枚举的 @ConstructorResult

java - 如何从 Spring 服务访问对象