隨筆-35  評論-33  文章-0  trackbacks-0
                spring mvc中,變量有一個作用域的概念,你可以很方便使用注解,就能實現變量的的設置,在各自的作用域內優雅的使用該變量。

          ModelAttribute

          假如有這樣一段代碼:


          myRequestObject這個引用,經過spring的處理,會自動把addStuffToRequestScope這個方法的返回值MyCommandBean作為值保存下來。實際上spring的model緩存這個值,其實這個值是在request的getAttribute里面。當你調用controller里面某個@requestmapping注解的方法,都能取到這個model里面的值。

          這個圖能說明一些問題:



          可以看出,在controller渲染頁面之前,spring已經把ModelAttribute里面的值植入進去了。其實它的作用域就是當前請求。

          SessionAttributes

          在原來的代碼基礎之上,再添加一個注解,就表示這個變量會跟隨用戶的會話周期。只要用戶不退出或者SESSION過期,這個值就一直可以保留。當然,在當前的 request周期之內,調用getAttribute方法同樣也可以得到。


          注意session與model的value名稱要一樣。

          使用場景:

          modelattribute:常量定義,比如key,value的映射。像下拉框,多選框等等

          sessionattribute:跟用戶會話相關的常量,如用戶基本信息等

          參考鏈接:understanding-spring-mvc-model-and-session-attributes



          我的微信公眾號,歡迎溝通學習。
          posted on 2016-03-10 20:02 alexcai 閱讀(2968) 評論(1)  編輯  收藏

          評論:
          # re: spring mvc中的ModelAttribute與SessionAttributes 2016-03-12 14:56 | java論壇
          額,你的圖片看不到啊  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 张家界市| 金寨县| 定安县| 济阳县| 潢川县| 临猗县| 若尔盖县| 大田县| 石屏县| 玛曲县| 兰西县| 柘城县| 武汉市| 赤水市| 峨眉山市| 莱芜市| 永丰县| 汉川市| 民权县| 读书| 富川| 渝中区| 定南县| 淮南市| 广西| 安化县| 东兰县| 海林市| 海原县| 南召县| 行唐县| 宜兰县| 东明县| 山阳县| 虹口区| 内乡县| 宁远县| 保靖县| 尉氏县| 丹棱县| 雷山县|