Spring MVC @SessionAttributes注解

@SessionAttributes原理

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

 

@SessionAttributes参数

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

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

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

具体代码

Java代码

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

 

Jsp页面

 

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

 

 

显示结果:

 

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

 

下面我们加上@SessionAttributes注解

复制代码
 1 @SessionAttributes(value={"names"},types={Integer.class})
 2 @Controller
 3 public class Test {
 4 
 5     @RequestMapping("/test")
 6     public String test(Map<String,Object> map){
 7         map.put("names", Arrays.asList("caoyc","zhh","cjx"));
 8         map.put("age", 18);
 9         return "hello";
10     }
11 }
复制代码

 

再次访问页面:

可以看到session域中值已存在

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值