springmvc controller间重定向带参数跳转的解决方案

本文探讨了在Spring MVC中,Controller之间进行重定向时如何携带参数。传统方式如URL拼接存在中文问题,而RedirectAttributes提供了解决方案。通过addAttribute方法会在URL后附加参数,而addFlashAttribute则将参数存储在session中,适用于跳转到页面。然而,当尝试在重定向到另一个Controller时获取这些参数,发现无法直接获取。最终,作者选择使用session来完成需求,但对RedirectAttributes是否能在不同Controller间传递参数存疑。
摘要由CSDN通过智能技术生成

1. 需求背景
    需求:spring MVC框架controller间跳转,需重定向。有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示。

传统的:可以通过在redirect:select.do?id=""&name="";这样拼接来实现,也可以实现,但是如果参数中有中文,就会出现问题。

RedirectAttributes

RedirectAttributes是spring mvc 3.1版本之后出来的一个功能,专门用于重定向之后还能带参数跳转的,
                    这里用它的addAttribute方法,这个实际上重定向过去以后你看url,是它自动给你拼了你的url。
他有两种带参的方式:
第一种: 
attr.addAttribute("param", value);  
这种方式就相当于重定向之后,在url后面拼接参数,这样在重定向之后的页面或者控制器再去获取url后面的参数就可以了,但这个方式因为是在url后面添加参数的方式,所以暴露了参数,有风险
例:

<
1
2
3
attr.addAttribute( "name" "123" );  
attr.addAttribute( "success" "success" );
return  "redirect:/index" ;
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值