在spring mvc中重定向后,从控制器传递参数的方法是什么?
如果我用mycontroller方法写:
return "redirect:url";
什么参数将传递给url(它可能是controler方法还是jsp页面)?
使用RedirectAttributes
,您几乎可以将任何数据传递到重定向URL:
@RequestMapping(value="/someURL", method=GET) public String yourMethod(RedirectAttributes redirectAttributes) { ... redirectAttributes.addAttribute("rd", "rdValue"); redirectAttributes.addFlashAttribute("fa", faValue); return "redirect:/someOtherURL"; }
使用addAttribute
添加属性时,这将最终出现在目标重定向URL中。 这些属性用于构造请求参数,客户端(浏览器)将使用这些参数向redirect URL
发送新请求。 有了这个,您只能使用String或基元作为重定向属性。
当您使用addFlashAttribute
,这些属性会在重定向之前临时保存(通常在会话中),并且在重定向后可用于请求并立即删除。 使用flashAttributes
的优点是,您可以将任何对象添加为flash属性(因为它存储在会话中)。