【发布时间】:2011-05-09 15:19:21
【问题描述】:
我如何设置一个会话对象,然后我可以使用${variable} 或${requestScope.variable} 在我的任何视图中使用它
为了能够使用会话,我需要设置<%@ page session="true" %> 吗?
【问题讨论】:
标签: java spring spring-mvc
我如何设置一个会话对象,然后我可以使用${variable} 或${requestScope.variable} 在我的任何视图中使用它
为了能够使用会话,我需要设置<%@ page session="true" %> 吗?
【问题讨论】:
标签: java spring spring-mvc
如果您想在视图中访问会话变量,最简单的方法是:
${sessionScope.yourVariable}
请参阅Using Scope Objects 了解更多信息。
如果您设置<%@ page session="true">,那么JSP 会将会话范围和页面范围合并到一个命名空间中。然后你可以这样做:
${yourVariable}
你可以像这样在 mvc 控制器的会话中加入一些东西:
@RequestMapping("/test")
@Controller
public class TestController {
@RequestMapping(method = RequestMethod.GET)
public String testMestod(HttpServletRequest request)
{
request.getSession().setAttribute("testVariable", "Test Values!!");
return "testJsp";
}
}
最后,@SessionAttribute 用于特定用例,不会将变量放入会话中,以便任何人都可以访问它们:
春天的人们是这样描述@SessionAttribute 的功能的:
@SessionAttributes 在 与 sessionForm 的方式相同 简单表单控制器。它把 命令(或用于 @SessionAttributes 任何对象)在会话中 第一个和第一个之间的持续时间 最后一个请求(大部分时间 初始 GET 和最终 POST)。后 东西被移除了。
每个 Controller 都有自己的 ModelMap 所以一些东西作为 控制器 1 中的 @SessionAttributes 在控制器 2 中不可用,并且 反之亦然。为此,您将 必须在会议上放东西 自己手动。
【讨论】: