如何在 ModelAndView 中使用重定向

Posted

技术标签:

【中文标题】如何在 ModelAndView 中使用重定向【英文标题】:How to use Redirect in ModelAndView 【发布时间】:2017-08-22 02:25:15 【问题描述】:

我想将我的网址重定向到 http://localhost:8080/ClickBuy/product/details 到 http://localhost:8080/ClickBuy/home 。

我定义了 header.jsp 并将其包含在我的所有页面中。当我从其他任何 url 中单击主页链接时,从当前 url 添加 /home。所以它显示 404 错误。

控制器

public ModelAndView allProduct()
   
ModelAndView model=new ModelAndView("pl");
model.addObject("data", pd.getAllProducts());
return model;

如何在ModelAndView返回类型方法中使用redirect:/???

【问题讨论】:

***.com/a/17961336/3959856 【参考方案1】:

要使用重定向:/ 在 ModelAndView 返回类型方法中,您可以尝试以下

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

如果主页不需要任何模型,也可以使用String returntype返回主页

@RequestMapping(value = "/home.htm", method = RequestMethod.GET)
   public String homePage() 
      return "home";
   

【讨论】:

'ModelAttribute' 是抽象的;无法实例化。【参考方案2】:

有不同的重定向方式,但使用 Spring ModelView 对象很简单

@RequestMapping(value = "/redirecturl", method = RequestMethod.POST)
    public ModelAndView methodPost() 
            return new ModelAndView( "redirect:/login.html");

    

【讨论】:

我使用了上述方法,但是重定向到外部 URL 是使用 POST 方法发生的,我可以将其更改为 GET 吗?

以上是关于如何在 ModelAndView 中使用重定向的主要内容,如果未能解决你的问题,请参考以下文章

ModelAndView重定向带参数解决方法

ModelAndView的使用 包括 forward转发、redirec重定向

返回ModelAndView时尝试使用“redirect:”前缀重定向页面时的状态404

Spring 控制器方法的返回值类型ModelAndView当中页面当中数据的传输(通过转发和重定向)

Spring 控制器方法的返回值类型ModelAndView当中页面当中数据的传输(通过转发和重定向)

Spring 控制器方法的返回值类型ModelAndView当中页面当中数据的传输(通过转发和重定向)