java – 模型和视图中的重定向和重定向之间的区别

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

>一些地方都使用return“redirect:/abc.htm”;.
>还使用返回新的ModelAndView(“redirect:/abc.htm”)。

任何一个请解释两个声明的差异和相似之处。

在哪种情况下它必须使用。

罗希特:

我使用RedirectAttribute从旧网址获取值。
在这种情况下,我使用这个返回值“redirect:/abc.htm”获得价值;
但不能在此返回新的ModelAndView(“redirect:/abc.htm”)。
RedirectAttributes有什么区别吗?

声明:

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

做同样的事情:将请求重定向到abc.htm。如果返回具有该视图名称的视图名称
前缀重定向:这被认为是需要重定向的特殊指示。视图名称的其余部分将被视为重定向网址。

与声明

return "redirect:/abc.htm"

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

使用ModelAndView,您可以以单个返回值返回模型和视图:

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

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

http://stackoverflow.com/questions/19516719/difference-between-redirect-and-redirect-inside-modelandview

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – 模型和视图中的重定向和重定向之间的区别