Umleitung zu externen URLs von Spring MVC Controller-Aktionen
In Spring MVC ist die Umleitung zu URLs innerhalb des Projekts mithilfe des Redirect:-Präfixes unkompliziert . Allerdings kann die Umleitung zu externen URLs schwierig sein, insbesondere wenn die URL kein gültiges Protokoll angibt.
Betrachten Sie den folgenden Code, der zu einer URL innerhalb des Projekts umleitet:
@RequestMapping(method = RequestMethod.POST) public String processForm(HttpServletRequest request, LoginForm loginForm, BindingResult result, ModelMap model) { String redirectUrl = "yahoo.com"; return "redirect:" redirectUrl; }
Dieser Code leitet nicht zur beabsichtigten externen URL weiter, sondern zu einer Ansicht mit dem angegebenen Namen. Um zu externen URLs umzuleiten, muss das Protokoll in die URL eingefügt werden, wie unten gezeigt:
@RequestMapping(method = RequestMethod.POST) public String processForm(HttpServletRequest request, LoginForm loginForm, BindingResult result, ModelMap model) { String redirectUrl = "http://www.yahoo.com"; return "redirect:" redirectUrl; }
Diese Methode erfordert jedoch das Vorhandensein eines gültigen Protokolls. Um URLs ohne gültige Protokolle zu verarbeiten, stehen zwei Ansätze zur Verfügung:
Ansatz 1:
@RequestMapping(value = "/redirect", method = RequestMethod.GET) public void method(HttpServletResponse httpServletResponse) { httpServletResponse.setHeader("Location", projectUrl); httpServletResponse.setStatus(302); }
Bei diesem Ansatz wird ein HttpServletResponse-Objekt verwendet, um den Standort-Header und den Statuscode festzulegen und so die Weiterleitung zu erzwingen.
Ansatz 2:
@RequestMapping(value = "/redirect", method = RequestMethod.GET) public ModelAndView method() { return new ModelAndView("redirect:" projectUrl); }
Dieser Ansatz verwendet ein ModelAndView, um zur angegebenen URL umzuleiten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3