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注解只能在类上利用,不能在要领上利用

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8275.html