码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC @SessionAttributes注解

时间:2018-04-09 18:46:15      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:com   默认   类型   www.   结束   turn   jsp页面   val   字符   

@SessionAttributes原理

  默认情况下Spring MVC将模型中的数据存储到request域中。当一个请求结束后,数据就失效了。如果要跨页面使用。那么需要使用到session。而@SessionAttributes注解就可以使得模型中的数据存储一份到session域中。

 

@SessionAttributes参数

  1、names:这是一个字符串数组。里面应写需要存储到session中数据的名称。

  2、types:根据指定参数的类型,将模型中对应类型的参数存储到session中

    3、value:其实和names是一样的。

具体代码

Java代码

@RequestMapping("/test")
public String test(Map<String,Object> map){
    map.put("names", Arrays.asList("caoyc","zhh","cjx"));
    map.put("age", 18);
    return "hello";
}

 

Jsp页面

 

1、request中names:${requestScope.names}<br/>
2、request中age:${requestScope.age}<br/>
<hr/>
3、session中names:${sessionScope.names }<br/>
4、session中age:${sessionScope.age }<br/> 

 

显示结果:

技术分享图片

 

【总结】:上面代码没有指定@SessionAttributes,所有在session域总无法获取到对应的数据。

 

下面我们加上@SessionAttributes注解

@SessionAttributes(value={"names"},types={Integer.class})
@Controller
public class Test {

    @RequestMapping("/test")
    public String test(Map<String,Object> map){
        map.put("names", Arrays.asList("caoyc","zhh","cjx"));
        map.put("age", 18);
        return "hello";
    }
}

 

再次访问页面:

技术分享图片

可以看到session域中值已存在

 

【注意】:@SessionAttributes注解只能在类上使用,不能在方法上使用

 

本文转自:http://www.cnblogs.com/caoyc/p/5635914.html

SpringMVC @SessionAttributes注解

标签:com   默认   类型   www.   结束   turn   jsp页面   val   字符   

原文地址:https://www.cnblogs.com/jasonZh/p/8761366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!