如何解决:redirect-SpringMVC重定向传参的问题:addFlashAttribute
1个回答
2016-10-19 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注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自网上,懒得自己写了
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自网上,懒得自己写了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询