使用EL表达式显示RedirectAttributes存放与FlashMap中的键值对
来源:互联网 发布:类似淘宝指数 编辑:程序博客网 时间:2024/05/18 04:57
在spring mvc带参跳转(redirect:XXXX)时,常用ModelAndView的addObject(key,value)方法。
这样就很让人崩溃,如何使用EL表达式,也就是${key} 的方式取出值来。
但上面的方法存在问题,就是浏览器地址栏中将出现参数,如control?key=value&key=value,这样很不美观。
尤其在参数有中文时,还存在乱码的问题。
所以现在换了一种方法,使用RedirectAttributes的addFlashAttribute(key,value)方法,这样参数将存储在session中,不会直接显示在浏览器的地址栏上。
但有得必有失,使用了上面的方式,通过查找session中的内容知道,
存储的key是“org.springframework.web.servlet.support.SessionFlashMapManager.FLASH_MAPS”,
value是“FlashMap [attributes={key=valuet, key=value}, targetRequestPath=/HFXJv2.0/index.jsp, targetRequestParams={}]”
value也可能是多个数据,如
“[FlashMap [attributes={key=valuet, key=value}, targetRequestPath=/HFXJv2.0/index.jsp, targetRequestParams={}],
FlashMap [attributes={key=valuet, key=value}, targetRequestPath=/HFXJv2.0/index.jsp, targetRequestParams={}],
FlashMap [attributes={key=valuet, key=value}, targetRequestPath=/HFXJv2.0/index.jsp, targetRequestParams={}]]”
经过反复的查找和测试
“springmvc重定向后jsp如何获取其中的flashAttribute?”“http://blog.csdn.net/zzg1229059735/article/details/51566563”
这篇帖子给了很大的启发。
可以使用
${sessionScope['org.springframework.web.servlet.support.SessionFlashMapManager.FLASH_MAPS'][0][key]}
的方式 取出value的值。
但是,问题还没有结束。
这里面有个[0]的存在,所以数据肯定是多维的数组,测试一下的结果,果然如此。
那么怎么通过EL表达式,取出最后一次输入的结果?(例如用户登录错误后,带用户名参数的返回网站默认页)
经过来回的EL表达式测试,实在找不到好的办法了,于是就把主意打到了Controller中。(如果有更好的解决方案,请一定要告诉我,谢谢!)
现在采用的方式,就是在调用RedirectAttributes的addFlashAttribute(key,value)方法前,将session中key为“org.springframework.web.servlet.support.SessionFlashMapManager.FLASH_MAPS”的数据都清除掉。
session.removeAttribute("org.springframework.web.servlet.support.SessionFlashMapManager.FLASH_MAPS");
这样就能保证每次都取出上次的数据了,但更前面的历史数据则彻底没有了。
所以,在这里还要重申一下:如果有更好的解决方案,请一定要告诉我,谢谢!
0 0
- 使用EL表达式显示RedirectAttributes存放与FlashMap中的键值对
- struts2(三)---使用EL表达式,显示Action中的数据
- JSP中的EL表达式使用
- SharedPreferences 键值对存放在where?
- jsp中的JSTL与EL表达式用法
- jsp中的JSTL与EL表达式用法
- jsp中的JSTL与EL表达式用法
- jsp中的JSTL与EL表达式用法
- el表达式中的${param}与${name}
- jsp中的JSTL与EL表达式用法
- el表达式在js中的使用
- EL表达式中的requestScope标签的使用
- 表达式语言(EL)在jsp中的使用
- EL表达式中的requestScope标签的使用
- android中的键值对
- EL表达式与JSTL标签的使用
- EL表达式不显示
- 键值对使用
- js:跳转和AJAX
- 深入理解Java的接口和抽象类
- Java使用Jetty实现嵌入式Web服务器及Servlet容器
- 微信Demo导入遇到的问题
- mysql优化limit查询语句的5个方法
- 使用EL表达式显示RedirectAttributes存放与FlashMap中的键值对
- eclipse Junit和server相对路径问题
- 三栏-中栏流动布局
- 堆排序算法
- USB基础知识__总结得很好
- BP神经网络的非线性函数拟合
- apache
- 看了这篇就会明白为什么我们只能当平常人
- js正则表达式语法