如果我在 mycontroller 方法中编写:
return "redirect:url";
哪些参数将传递给 url(可能是控制器方法或 jsp 页面)?
如果我在 mycontroller 方法中编写:
return "redirect:url";
哪些参数将传递给 url(可能是控制器方法或 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
使用这些参数向客户端发送新请求。有了这个,您只能使用字符串或原语作为您的重定向属性。
而当你使用 时addFlashAttribute
,这些属性会在重定向之前临时保存(通常在会话中),并且在重定向之后可用于请求并立即删除。使用的好处flashAttributes
是,您可以将任何对象添加为 flash 属性(因为它存储在会话中)。