「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Spring MVCコントローラーアクションから外部URLにリダイレクトするにはどうすればよいですか?

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

2024 年 11 月 20 日に公開
ブラウズ:225

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 にリダイレクトします。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3