隨筆-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論壇
          額,你的圖片看不到啊  回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 武陟县| 吉木萨尔县| 济南市| 万山特区| 蚌埠市| 安泽县| 泰安市| 应用必备| 马鞍山市| 太湖县| 胶州市| 许昌县| 浦城县| 东至县| 平湖市| 平泉县| 和政县| 华宁县| 郸城县| 任丘市| 榕江县| 绩溪县| 新河县| 饶平县| 邓州市| 广平县| 祁东县| 扎兰屯市| 广西| 屏南县| 从江县| 碌曲县| 任丘市| 吉安县| 新和县| 肃北| 海兴县| 新民市| 宁安市| 依安县| 乌兰浩特市|