如何解决:redirect-SpringMVC重定向传参的问题:addFlashAttribute

 我来答
千锋教育
2018-07-05 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
@RequestMapping(value = "/xx", method = RequestMethod.POST)
public String xxx(RedirectAttributes redirectAttributes) throws Exception {
redirectAttributes.addFlashAttribute("xx", "xx!");//使用addFlashAttribute,参数不会出现在url地址栏中
return "redirect:/yy";
}

要是知道原理就很简单了:redirectAttributes.addFlashAttribute()是把参数放在session中 ,跳转之后再从session中移除。在重定向的页面是可以用el取数据的,但是在重定向到的controller(action)怎么获取呢?也是有方法的:
方法一:利用httpServletRequest
public String test2(HttpServletRequest request)
{
Map<String,?> map = RequestContextUtils.getInputFlashMap(request);
System.out.println(map.get("test").toString());
return "/test/hello";
}
方法二:利用Spring提供的标签@ModelAttribute
public String test2(@ModelAttribute("test") String str)
{
System.out.println(str);
return "/test/hello";
}

部分代码copy自网上,懒得自己写了
百度网友062f9c8
2016-08-13 · TA获得超过1254个赞
知道小有建树答主
回答量:840
采纳率:60%
帮助的人:727万
展开全部
@RequestMapping(value = "/xx", method = RequestMethod.POST)  
public String xxx(RedirectAttributes redirectAttributes) throws Exception {  
    redirectAttributes.addFlashAttribute("xx", "xx!");//使用addFlashAttribute,参数不会出现在url地址栏中  
    return "redirect:/yy";  
}

你要是知道原理就很简单了:redirectAttributes.addFlashAttribute()是把参数放在session中 ,跳转之后再从session中移除。在重定向的页面是可以用el取数据的,但是在重定向到的controller(action)怎么获取呢?也是有方法的:

方法一:利用httpServletRequest
    public String test2(HttpServletRequest request)
{
Map<String,?> map = RequestContextUtils.getInputFlashMap(request);
System.out.println(map.get("test").toString());
return "/test/hello";
}
     方法二:利用Spring提供的标签@ModelAttribute
public String test2(@ModelAttribute("test") String str)
{
System.out.println(str);
return "/test/hello";
}


部分代码copy自网上,懒得自己写了

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式