gpt4 book ai didi

java - model和view内部redirect和redirect的区别

转载 作者:IT老高 更新时间:2023-10-28 13:44:20 28 4
gpt4 key购买 nike

在spring Controller 类中重定向到一个url

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

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

请哪位大神解释一下这两种说法的异同。

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


罗希特:

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

有什么区别吗

最佳答案

声明:

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

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

附言

return "redirect:/abc.htm"

您只能返回重定向 View 名称。

使用 ModelAndView 您可以在一个返回值中同时返回 modelview:

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

但该属性值在客户端(浏览器)将为 URL /abc.htm 发出的新重定向请求中将不可用。 ModelAndView 的最佳用途是当您将请求转发到新的 URL 时,这样您就可以将 modelview 一起返回到一个单一的返回值。对于重定向场景,如果要传递属性,应该使用RedirectAttributes

关于java - model和view内部redirect和redirect的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19516719/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com