Spring MVC @SessionAttributes注解


 

原文地址:https://www.cnblogs.com/caoyc/p/5635914.html

@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注解只能在類上使用,不能在方法上使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM