最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring學(xué)習(xí)之@SessionAttributes實(shí)例解析

 更新時(shí)間:2018年02月10日 11:48:41   作者:你的承諾早已氾黃  
這篇文章主要介紹了spring學(xué)習(xí)之@SessionAttributes實(shí)例解析,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下

本文研究的主要是spring學(xué)習(xí)之@SessionAttributes的相關(guān)內(nèi)容,具體如下。

一、@ModelAttribute

在默認(rèn)情況下,ModelMap 中的屬性作用域是 request 級(jí)別是,也就是說(shuō),當(dāng)本次請(qǐng)求結(jié)束后,ModelMap中的屬性將銷(xiāo)毀。如果希望在多個(gè)請(qǐng)求中共享 ModelMap 中的屬性,必須將其屬性轉(zhuǎn)存到 session 中,這樣ModelMap 的屬性才可以被跨請(qǐng)求訪(fǎng)問(wèn)。

spring 允許我們有選擇地指定 ModelMap 中的哪些屬性需要轉(zhuǎn)存到 session 中,以便下一個(gè)請(qǐng)求屬對(duì)應(yīng)的 ModelMap 的屬性列表中還能訪(fǎng)問(wèn)到這些屬性。這一功能是通過(guò)類(lèi)定義處標(biāo)注 @SessionAttributes 注解來(lái)實(shí)現(xiàn)的。

使模型對(duì)象的特定屬性具有 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屬性列表中,以便這個(gè)屬性可以跨請(qǐng)求訪(fǎng)問(wèn)  
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中添加一個(gè)屬性  
		return "listTopic";
	}
}

我們?cè)?② 處添加了一個(gè) ModelMap 屬性,其屬性名為 currUser,而 ① 處通過(guò) @SessionAttributes 注解將 ModelMap 中名為 currUser 的屬性放置到 Session 中,所以我們不但可以在 listBoardTopic() 請(qǐng)求所對(duì)應(yīng)的 JSP 視圖頁(yè)面中通過(guò) request.getAttribute(“currUser”) session.getAttribute(“currUser”) 獲取 user 對(duì)象,還可以在下一個(gè)請(qǐng)求所對(duì)應(yīng)的 JSP 視圖頁(yè)面中通過(guò) session.getAttribute(“currUser”) ModelMap#get(“currUser”) 訪(fǎng)問(wèn)到這個(gè)屬性。

這里我們僅將一個(gè) ModelMap 的屬性放入 Session 中,其實(shí) @SessionAttributes 允許指定多個(gè)屬性。你可以通過(guò)字符串?dāng)?shù)組的方式指定多個(gè)屬性,如 @SessionAttributes({“attr1”,”attr2”}) 。此外,@SessionAttributes還可以通過(guò)屬性類(lèi)型指定要 session 化的 ModelMap 屬性,如 @SessionAttributes(types = User.class) ,當(dāng)然也可以指定多個(gè)類(lèi),如 @SessionAttributes(types = {User.class,Dept.class}) ,還可以聯(lián)合使用屬性名和屬性類(lèi)型指定: @SessionAttributes(types = {User.class,Dept.class},value={“attr1”,”attr2”}) 。

二、@ModelAttribute

我們可以在需要訪(fǎng)問(wèn) Session 屬性的 controller 上加上 @SessionAttributes,然后在 action 需要的 User 參數(shù)上加上 @ModelAttribute,并保證兩者的屬性名稱(chēng)一致。SpringMVC 就會(huì)自動(dòng)將 @SessionAttributes 定義的屬性注入到 ModelMap 對(duì)象,在 setup action 的參數(shù)列表時(shí),去 ModelMap 中取到這樣的對(duì)象,再添加到參數(shù)列表。只要我們不去調(diào)用 SessionStatus 的 setComplete() 方法,這個(gè)對(duì)象就會(huì)一直保留在 Session 中,從而實(shí)現(xiàn) Session 信息的共享。

@Controller  
@SessionAttributes("currentUser")</span>  
public class GreetingController{
	@RequestMapping  
	public void hello(@ModelAttribute("currentUser")User user){
		//user.sayHello()
	}
}

總結(jié)

以上就是本文關(guān)于spring學(xué)習(xí)之@SessionAttributes實(shí)例解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • 淺談一下Java中集合的迭代方式

    淺談一下Java中集合的迭代方式

    這篇文章主要介紹了淺談一下Java中集合的迭代方式,可以幫助我們學(xué)習(xí),理解函數(shù)式編程,需要的朋友可以參考下
    2023-04-04
  • 一文帶你解讀Java序列化和反序列化機(jī)制

    一文帶你解讀Java序列化和反序列化機(jī)制

    序列化是將對(duì)象轉(zhuǎn)換成二進(jìn)制字節(jié)流的過(guò)程;反序列化是從二進(jìn)制字節(jié)流中恢復(fù)對(duì)象的過(guò)程。本文將大家詳細(xì)講講二者的原理與實(shí)現(xiàn),希望對(duì)大家有所幫助
    2023-01-01
  • JAVA防止重復(fù)提交Web表單的方法

    JAVA防止重復(fù)提交Web表單的方法

    這篇文章主要介紹了JAVA防止重復(fù)提交Web表單的方法,涉及Java針對(duì)表單的相關(guān)處理技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • Java實(shí)現(xiàn)單鏈表翻轉(zhuǎn)實(shí)例代碼

    Java實(shí)現(xiàn)單鏈表翻轉(zhuǎn)實(shí)例代碼

    Java實(shí)現(xiàn)單鏈表反轉(zhuǎn),遞歸和非遞歸兩種形式。接下來(lái)通過(guò)本文給大家分享Java實(shí)現(xiàn)單鏈表翻轉(zhuǎn)實(shí)例代碼,需要的的朋友參考下
    2017-03-03
  • springboot2.3.1替換為其他的嵌入式servlet容器的詳細(xì)方法

    springboot2.3.1替換為其他的嵌入式servlet容器的詳細(xì)方法

    這篇文章主要介紹了springboot2.3.1替換為其他的嵌入式servlet容器的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Spring配置動(dòng)態(tài)數(shù)據(jù)源實(shí)現(xiàn)讀寫(xiě)分離的方法

    Spring配置動(dòng)態(tài)數(shù)據(jù)源實(shí)現(xiàn)讀寫(xiě)分離的方法

    這篇文章主要介紹了利用Spring配置動(dòng)態(tài)數(shù)據(jù)源實(shí)現(xiàn)讀寫(xiě)分離的方法,文中通過(guò)示例代碼介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,藕需要的朋友可以一起學(xué)習(xí)學(xué)習(xí)。
    2017-01-01
  • SpringBoot項(xiàng)目集成Flyway進(jìn)行數(shù)據(jù)庫(kù)版本控制的詳細(xì)教程

    SpringBoot項(xiàng)目集成Flyway進(jìn)行數(shù)據(jù)庫(kù)版本控制的詳細(xì)教程

    這篇文章主要介紹了SpringBoot項(xiàng)目集成Flyway進(jìn)行數(shù)據(jù)庫(kù)版本控制,本文分步驟通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • IDEA編譯時(shí)報(bào)常量字符串過(guò)長(zhǎng)的解決辦法

    IDEA編譯時(shí)報(bào)常量字符串過(guò)長(zhǎng)的解決辦法

    本文主要介紹了IDEA編譯時(shí)報(bào)常量字符串過(guò)長(zhǎng)的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 詳解JUC并發(fā)編程之鎖

    詳解JUC并發(fā)編程之鎖

    這篇文章主要為大家介紹了JUC并發(fā)編程之鎖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • 內(nèi)存屏障由來(lái)及實(shí)現(xiàn)思路

    內(nèi)存屏障由來(lái)及實(shí)現(xiàn)思路

    這篇文章主要為大家詳細(xì)介紹了內(nèi)存屏障由來(lái)及實(shí)現(xiàn)思路的詳細(xì)講解,讓大家徹底的理解內(nèi)存屏障,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-01-01

最新評(píng)論

灵璧县| 鄢陵县| 文水县| 綦江县| 哈密市| 黑山县| 东阳市| 新郑市| 新郑市| 霸州市| 宜兴市| 伊宁市| 九龙县| 盐津县| 新乡市| 莆田市| 冀州市| 万源市| 金华市| 南雄市| 靖远县| 万山特区| 察雅县| 张家界市| 玉环县| 四川省| 黔西县| 河间市| 苏尼特右旗| 乌拉特前旗| 中方县| 铜川市| 盱眙县| 龙门县| 鄯善县| 调兵山市| 城口县| 班戈县| 六枝特区| 庆阳市| 三河市|