设置会话变量spring mvc 3

Gan*_*row 16 java spring spring-mvc

如何通过使用${variable}或设置我可以在任何视图中使用的会话对象${requestScope.variable}

为了能够使用会话,我需要设置<%@ page session="true" %>吗?

Kar*_*ran 33

如果要在视图中访问会话变量,最简单的方法是:

${sessionScope.yourVariable} 
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅使用范围对象.

如果设置,<%@ page session="true">则JSP会将会话范围和页面范围合并到单个命名空间中.然后你可以这样做:

${yourVariable}
Run Code Online (Sandbox Code Playgroud)

您可以在mvc控制器中将某些内容放入会话中,如下所示:

@RequestMapping("/test")
@Controller
public class TestController {
    @RequestMapping(method = RequestMethod.GET)
    public String testMestod(HttpServletRequest request)
    {
        request.getSession().setAttribute("testVariable", "Test Values!!");
        return "testJsp";
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,@ SessionAttribute用于特定用例,并且不会将变量放入会话中,以便任何人都可以访问它们:

以下是春天人们如何描述@SessionAttribute的功能:

@SessionAttributes的工作方式与SimpleFormController的sessionForm相同.它将命令(或@SessionAttributes任何对象)放在会话中,持续时间为第一个和最后一个请求(大多数时间是初始GET和最终POST).之后,东西被删除.

每个Controller都有自己的ModelMap,因此在controller1中作为@SessionAttributes放置的内容在controller2中不可用,反之亦然.为此,你必须自己手动将东西放在会话上.