您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“SpringBoot中@SessionAttributes怎么使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“SpringBoot中@SessionAttributes怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
在默認情況下,ModelMap中的屬性作用域是request級別,也就是說,當本次請求結束后,ModelMap 中的屬性將銷毀。如果希望在多個請求中共享ModelMap中的屬性,必須將其屬性轉存到session 中,這樣 ModelMap 的屬性才可以被跨請求訪問。
Spring 允許我們有選擇地指定 ModelMap 中的哪些屬性需要轉存到 session 中,以便下一個請求屬對應的 ModelMap 的屬性列表中還能訪問到這些屬性。這一功能是通過類定義處標注 @SessionAttributes 注解來實現的。
Controller
@Controller @RequestMapping("/anno") @SessionAttributes(value={"msg"}) // 把Mapmodel中名字為msg的屬性存入到session屬性列表中 public class AnnoController { @RequestMapping(value="/testSessionAttributes") public String testSessionAttributes(Model model){ System.out.println("testSessionAttributes..."); // 底層會存儲到request域對象中 model.addAttribute("msg","testSessionAttributes"); return "success"; } @RequestMapping(value="/getSessionAttributes") public String getSessionAttributes(ModelMap modelMap){ System.out.println("getSessionAttributes..."); String msg = (String) modelMap.get("msg"); System.out.println(msg); return "success"; } @RequestMapping(value="/delSessionAttributes") public String delSessionAttributes(SessionStatus status){ status.setComplete();//刪除session域中的存入的數據 return "success"; } }
success.html
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>Title</title> </head> <body> <h4>入門成功</h4> ${ msg } ${sessionScope} </body> </html>
測試1
訪問:http://localhost:8080/anno/testSessionAttributes/
前端
測試2
訪問:http://localhost:8080/anno/getSessionAttributes/
后端打印
getSessionAttributes...
testSessionAttributes
測試3
訪問:http://localhost:8080/anno/getSessionAttributes/
測試4
再次訪問:http://localhost:8080/anno/getSessionAttributes/
后端打印
getSessionAttributes...
null
前端
讀到這里,這篇“SpringBoot中@SessionAttributes怎么使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。