„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie leite ich von Spring MVC Controller-Aktionen zu externen URLs um?

Wie leite ich von Spring MVC Controller-Aktionen zu externen URLs um?

Veröffentlicht am 20.11.2024
Durchsuche:767

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

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.

Neuestes Tutorial Mehr>

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