刚才做项目,遇到了redirectAttributes使用的问题,上网找了找,看到一篇写的很不错的博客,解决我对于RedirectAttributes的困惑,也给大家推荐下。

原文链接:href="https://zhuanlan.zhihu.com/p/21353217?refer=pengsong-java

RedirectAttributes 是Spring mvc 3.1版本之后出来的一个功能,专门用于重定向之后还能带参数跳转的的工具类

它有两种带参的方式:

第一种:

redirectAttributes.addAttributie("prama",value); 这种方法相当于在重定向链接地址追加传递的参数,例如:

redirectAttributes.addAttributie("prama1",value1);

redirectAttributes.addAttributie("prama2",value2);

return:"redirect:/path/list" 

以上重定向的方法等同于 return:"redirect:/path/list?prama1=value1&prama2=value2 " ,注意这种方法直接将传递的参数暴露在链接地址上,非常的不安全,慎用。

第二种:

redirectAttributes.addFlashAttributie("prama",value); 这种方法是隐藏了参数,链接地址上不直接暴露,但是能且只能在重定向的 “页面” 获取prama参数值。

其原理就是放到session中,session在跳到页面后马上移除对象。如果是重定向一个controller中是获取不到该prama属性值的。除非在controller中用(@RequestPrama(value = "prama")String prama)注解,采用传参的方式。

页面获值例如:

redirectAttributes.addFlashAttributie("prama1",value1);

redirectAttributes.addFlashAttributie("prama2",value2);

return:"redirect:/path/list.jsp" 

在以上参数均可在list.jsp页面使用EL表达式获取到参数值${prama*}

controller获得redirectAttributes重定向的值例如:

redirectAttributes.addFlashAttributie("prama1",value1);

redirectAttributes.addFlashAttributie("prama2",value2);

return:"redirect:/path/list/"

@RequestMapping("list")
public List<Student> list(@RequestPrama(value = "prama1")String prama1,
@RequestPrama(value = "prama2")String prama2,...
){
//TODO
//your code }

通过在controller中的list方法体中可以获取到参数值。

最新文章

  1. 初谈SQL Server逻辑读、物理读、预读
  2. 交换芯片收发包的 DMA 实现原理
  3. 【C语言入门教程】5.2 函数的作用域规则(auto, static)
  4. 用file上传文件时,浏览器返回值总是自动添加&lt;pre&gt;的解决办法
  5. Jade之Code
  6. jquery的height()和javascript的height总结,js获取屏幕高度
  7. jQuery select 操作全集
  8. Kate Spade_百度百科
  9. POJ 2485 Highway(Prim+邻接矩阵)
  10. HDU 4393 Throw nails(优先队列)
  11. 团队作业10——复审和事后分析(Beta版本)
  12. 【Shell脚本学习指南笔记】重定向文件描述符 2&gt;&amp;1
  13. DirectSound---简易Wav播放器
  14. [HAOI2008]木棍分割
  15. php 关于经纬度距离计算方法
  16. Visual Studio VS2010统计代码行数
  17. 自定义指令(v-check、v-focus)的方法有哪些?它有哪些钩子函数?还有哪些钩子函数参数?
  18. vuex语法精简(方便开发查阅)
  19. 记录一次Git问题及其解决方案
  20. NetScaler VLAN’s Demystified

热门文章

  1. 八 Spring的IOC的XML和注解的区别及其整合开发
  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设定文本右对齐
  3. 《Interest Rate Risk Modeling》阅读笔记——第九章:关键利率久期和 VaR 分析
  4. C++11并发编程1------并发介绍
  5. nginx反向代理(2)
  6. 获取进程对应的UID登陆用户
  7. Visual Studio Code 格式化ESlint 的方法
  8. rendering path定义了什么?有哪些?有什么作用?有什么限制?
  9. 学习打卡8:循环语句for、while
  10. 全方位深入理解JavaScript面向对象