ホームページ >Java >&#&チュートリアル >Spring MVCコントローラーアクションから外部URLにリダイレクトするにはどうすればよいですか?

Spring MVCコントローラーアクションから外部URLにリダイレクトするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-12 00:04:021033ブラウズ

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 を処理するには、2 つのアプローチが利用可能です:

アプローチ 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。