在 modelandview 中重定向和重定向之间的区别

2022-09-01 05:17:41

在弹簧控制器类中重定向到 url

  • 有些地方都使用.return "redirect:/abc.htm";

  • 也使用 .return new ModelAndView("redirect:/abc.htm")

任何人请解释这两种说法的区别和相似之处。

在这种情况下,它必须使用。


罗希特:

我使用RedirectAttribute从旧网址中获取值。在这种情况下,我在使用它时获得价值,但在此中却没有。
return "redirect:/abc.htm";return new ModelAndView("redirect:/abc.htm")RedirectAttributes


答案 1

语句:

return "redirect:/abc.htm"
return new ModelAndView("redirect:/abc.htm")

做同样的事情:请求 。如果返回的视图名称带有前缀 ,这被识别为需要重定向的特殊指示。视图名称的其余部分将被视为重定向 URL。redirectsabc.htmredirect:

使用语句

return "redirect:/abc.htm"

您只能返回重定向视图名称。

您可以使用两者返回,并在单个返回值中返回:ModelAndViewmodelview

ModelAndView modelAndView =  new ModelAndView("redirect:/abc.htm");
modelAndView.addObject("modelAttribute" , new ModelAttribute());
return modelAndView;

但是,属性值在客户端(浏览器)将为URL发出的新重定向请求中不可用。最好的用法是将请求转发到新的 URL 时,这样您就可以在单个返回值中同时返回两者。对于重定向方案,如果要传递属性,则应使用 。/abc.htmModelAndViewmodelviewRedirectAttributes


答案 2

推荐