首頁 > Java > java教程 > 如何從 Spring MVC 控制器操作重新導向到外部 URL?

如何從 Spring MVC 控制器操作重新導向到外部 URL?

Patricia Arquette
發布: 2024-11-12 00:04:02
原創
1031 人瀏覽過

How to Redirect to External URLs from Spring MVC Controller Actions?

從Spring MVC 控制器操作重定向到外部URL

在Spring MVC 中,使用redirect: 前綴重定向到專案內的URL 非常簡單。但是,重定向到外部 URL 可能會很棘手,尤其是在 URL 未指定有效協定的情況下。

考慮以下程式碼,它將重定向到專案內的URL:

@RequestMapping(method = RequestMethod.POST)
public String processForm(HttpServletRequest request, LoginForm loginForm, 
                          BindingResult result, ModelMap model) 
{
    String redirectUrl = "yahoo.com";
    return "redirect:" + redirectUrl;
}
登入後複製

此程式碼不會重定向到預期的外部URL,而是重定向到具有給定名稱的視圖。要重定向到外部 URL,必須在 URL 中包含協議,如下所示:

@RequestMapping(method = RequestMethod.POST)
public String processForm(HttpServletRequest request, LoginForm loginForm, 
                              BindingResult result, ModelMap model) 
{
    String redirectUrl = "http://www.yahoo.com";
    return "redirect:" + redirectUrl;
}
登入後複製

但是,此方法需要存在有效的協議。要處理沒有有效協定的URL,可以使用兩種方法:

方法1:

@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public void method(HttpServletResponse httpServletResponse) {
    httpServletResponse.setHeader("Location", projectUrl);
    httpServletResponse.setStatus(302);
}
登入後複製

在此方法中,使用HttpServletResponse 物件來設定位置標頭和狀態碼,強制重定向。

方法2:

@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public ModelAndView method() {
    return new ModelAndView("redirect:" + projectUrl);
}
登入後複製

此方法使用 ModelAndView 重定向到給定的 URL。

以上是如何從 Spring MVC 控制器操作重新導向到外部 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板