SpringMVC:redirect傳值與Flash

轉發和重定向,javaee程序員都懂得。
重定向傳值直接就攜帶,沒有傳值問題
但是對於轉發實際上是將瀏覽器定位定另一個頁面(可以跨域,不討論),頁面傳值有兩種方式:
- url攜帶參數
- session保存到重定向頁面取出。
明顯第一種方式太粗糙,尤其是攜帶敏感信息的時候,但是第二種方式的話會把一些不是很重要的數據放到Session,多耗性能啊!!其實我們的傳值也許只是用在跳轉到頁面期間,那我們在跳轉用完後在從Session中剔除不就可以了嗎!!對,很好!這麼牛X的Spring會沒想當嗎?當然不會!!!
Spring提供了Flash這個東西,實際就是完成上述的功能,但是我們怎麼用呢?

ps:開始研究DispatcherServlet在默認屬性文件中就看到一行,什麼鬼?
Flash 想想我們以前常用的SD card Flash 。原來是閃存的意思。

org.springframework.web.servlet.FlashMapManager=org.springframework.web.servlet.support.SessionFlashMapManager

繼續:
Flash怎麼用呢
很簡單Model都知道,但是他有一個子接口:RedirectAttributes
裏面定義了額外的方法:

    RedirectAttributes addFlashAttribute(String attributeName, Object attributeValue);

    RedirectAttributes addFlashAttribute(Object attributeValue);

    Map<String, ?> getFlashAttributes();

通過這些方法我們就可以實現在重定向過程中傳值,還不用管理他們,so easy!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章