设置会话变量spring mvc 3
问题内容:
如何设置会话对象,然后可以使用${variable}
或在我的任何视图中使用${requestScope.variable}
为了能够使用会话,我需要设置<%@ page session="true" %>
吗?
问题答案:
如果要在视图中访问会话变量,最简单的方法是:
${sessionScope.yourVariable}
有关更多信息,请参见使用作用域对象。
如果设置,<%@ 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用于特定的用例,并且不会将变量放入会话中,以便任何人都可以访问它们:
这是spring人们如何描述@SessionAttribute的功能:
@SessionAttributes的工作方式与SimpleFormController的sessionForm相同。它将命令(或@SessionAttributes任何对象)放在会话中的第一个请求和最后一个请求之间的持续时间内(大多数情况下是初始GET和最终POST)。之后,将这些东西删除。
每个Controller都有其自己的ModelMap,因此在controller2中不能将某些内容作为@SessionAttributes放置在controller1中,反之亦然。为此,您必须自己手动将内容放入会话中。