重定向和modelandview内部重定向之间的区别

在spring控制器类中重定向到url

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

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

任何人都请解释这两种陈述的异同。

在什么情况下必须使用它。


罗希特:

我正在使用RedirectAttribute从旧网址获取值。在这种情况下,使用此功能会获得价值,return "redirect:/abc.htm";

但不能获得此价值 return new ModelAndView("redirect:/abc.htm")

有什么区别吗RedirectAttributes

回答:

声明:

return "redirect:/abc.htm"

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

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

与声明

return "redirect:/abc.htm"

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

随着ModelAndView你便可返回model,并view在一个单一的返回值:

ModelAndView modelAndView =  new ModelAndView("redirect:/abc.htm");

modelAndView.addObject("modelAttribute" , new ModelAttribute());

return modelAndView;

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

以上是 重定向和modelandview内部重定向之间的区别 的全部内容, 来源链接: utcz.com/qa/403355.html

回到顶部