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