Spring MVC @SessionAttributes注解
2017-01-10 09:30
411 查看
@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注解只能在类上使用,不能在方法上使用
相关文章推荐
- Shiro学习之路 Hello Shiro(一)
- 基于Spring Boot 的Blog开发
- Spring整合Dwr,Cannot locate BeanDefinitionParser for element [annotation-scan]
- SpringMVC两种接收GET参数的方法
- spring3 MVC手工搭建Spring3项目demo
- spring mvc 开发需要的jar包的用途详解
- 基于注解的 Spring MVC 简单入门-网摘
- [MVC] 深入浅出Spring MVC
- SpringMVC 整合 ehcache. 注解应用
- Circular view path [index]: would dispatch back to the current handler URL [/index] again.
- Mock 编写一个Spring Controller 测试类
- Spring MVC 配置 multipart 解析器 上传文件
- spring mvc @ModelAttribute注解应用分析
- 初学者对Spring MVC的认识
- 让 SpringMVC 接收多个对象的4种方法
- 使用POI、Spring MVC导出EXCEL
- spring mvc的web.xml的配置
- SpringMVC工作原理
- Spring MVC静态资源处理<mvc:resources><mvc:default-servlet-handler>
- spring拦截器配置