SpringMVC传递参数到重定向后的页面

本文详细介绍了在SpringMVC中如何利用RedirectAttributes进行重定向后的参数传递。由于redirect请求时不能直接通过request传递参数,SpringMVC提供RedirectAttributes支持。通过addFlashAttribute方法添加的属性会自动传递到新页面的Model中,利用FlashMapManager在Session中管理。在重定向后,可以从Model或FlashMap中获取传递的参数,这些参数在Session中只存在一次请求,请求完成后会被清除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RedirectAttributes传递参数到重定向后的页面

Servlet容器在页面跳转时有两种方式,forward和redirect的,其中forward时应用的是在服务端的跳转,应用的是同一个request。而redirect是服务端通过响应301和对应的新地址告诉浏览器让浏览器重新请求新的地址。第一次请求和第二次请求使用的不是同一个request的。所以这种情况下,不能直接通过request传递参数到新的页面。SpringMVC默认使用的是forward请求,如果需要使用redirect跳转新页面,可以使用redirect:前缀。forward请求时添加到Model中的参数都可以被传递到新的页面,而通过redirect:跳转到新页面时,默认会自动把当前Model中包含的原始类型的属性及原始类型的Collection/Array作为查询参数传递下去。比如对于下面的处理器映射,如果我们请求/redirect/abc,则会自动跳转到/abc,并且会附上查询参数?a=1&b=2&c=1&c=2&c=3,所以浏览器会自动请求/abc?a=1&b=2&c=1&c=2&c=3

@RequestMapping("/redirect/{target}")
public String redirectTo(@PathVariable("target") String redirectTo, Map<String, Object> model) {
   
   
    model.put("a", "1");
    model.put("b", 2);
    model.put("c", Arrays.asList(1, 2, 3));
    return "redirect:/" + redirectTo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值