ホームページ >Java >&#&チュートリアル >Spring MVCコントローラーアクションから外部URLにリダイレクトするにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。