zoukankan      html  css  js  c++  java
  • 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注解只能在类上使用,不能在方法上使用

  • 相关阅读:
    属性选择器
    优先级
    hj_html&css
    hj_解决gpedit.msc不存在的问题
    hj_designPatterns
    hj_ssm
    hj-springmvc
    hj_mybatis
    hj_Python踩坑之旅
    hj_Python学习笔记
  • 原文地址:https://www.cnblogs.com/caoyc/p/5635914.html
Copyright © 2011-2022 走看看