您的位置:首页 > 编程语言 > Java开发

SpringMVC:redirect传值与Flash

2016-08-25 20:17 337 查看
转发和重定向,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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息