本文研究的主要是spring學(xué)習(xí)之@SessionAttributes的相關(guān)內(nèi)容,具體如下。
在華龍等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作 網(wǎng)站設(shè)計制作按需定制,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,華龍網(wǎng)站建設(shè)費(fèi)用合理。一、@ModelAttribute在默認(rèn)情況下,ModelMap 中的屬性作用域是 request 級別是,也就是說,當(dāng)本次請求結(jié)束后,ModelMap中的屬性將銷毀。如果希望在多個請求中共享 ModelMap 中的屬性,必須將其屬性轉(zhuǎn)存到 session 中,這樣ModelMap 的屬性才可以被跨請求訪問。
spring 允許我們有選擇地指定 ModelMap 中的哪些屬性需要轉(zhuǎn)存到 session 中,以便下一個請求屬對應(yīng)的 ModelMap 的屬性列表中還能訪問到這些屬性。這一功能是通過類定義處標(biāo)注 @SessionAttributes
注解來實(shí)現(xiàn)的。
使模型對象的特定屬性具有 Session 范圍的作用域
package com.baobaotao.web; … import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.SessionAttributes; @Controller @RequestMapping("/bbtForum.do") @SessionAttributes("currUser") //①將ModelMap中屬性名為currUser的屬性 ,放到Session屬性列表中,以便這個屬性可以跨請求訪問 public class BbtForumController { … @RequestMapping(params = "method=listBoardTopic") public String listBoardTopic(@RequestParam("id")int topicId, User user, ModelMap model) { bbtForumService.getBoardTopics(topicId); System.out.println("topicId:" + topicId); System.out.println("user:" + user); model.addAttribute("currUser",user); //②向ModelMap中添加一個屬性 return "listTopic"; } }