SpringMVC重定向RedirectAttributes的使用

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

  • 第一种:
attr.addAttribute("param", value);  
@RequestMapping("/save")
 public String save(User user, RedirectAttributes redirectAttributes) {
 redirectAttributes.addAttribute("param", "value1"); 
return "redirect:/index";
 }

请求 /save 后,跳转至/index,并且会在url拼接 ?param=value1。

这种方式就相当于重定向之后,在url后面拼接参数,这样在重定向之后的页面或者控制器再去获取url后面的参数就可以了,但这个方式因为是在url后面添加参数的方式,所以暴露了参数,有风险

这样就相当于:return “redirect:/index?name=123&success=success”

  • 第二种:
attr.addFlashAttribute("param", value);
@RequestMapping("/save") 
public String save(User user, RedirectAttributes redirectAttributes) {
 redirectAttributes.addFlashAttribute("param", "value1"); 
return "redirect:/index";
 }

请求 /save 后,跳转至 /index,并且可以在 index 对应的模版中通过表达式,比如 jsp 中 jstl 用 ${param},获取返回值。该值其实是保存在 session ## 标题 ##中的,并且会在下次重定向请求时删除。

这种方式也能达到重新向带参,而且能隐藏参数,其原理就是放到session中,session在跳到页面后马上移除对象。所以你刷新一下后这个值就会丢掉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值