Heim > Java > javaLernprogramm > Wie leite ich von Spring MVC Controller-Aktionen zu externen URLs um?

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

Patricia Arquette
Freigeben: 2024-11-12 00:04:02
Original
1071 Leute haben es durchsucht

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 mit dem Präfix „redirect:“ 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;
}
Nach dem Login kopieren

Dieser Code leitet nicht zur beabsichtigten externen URL weiter, sondern zu einer Ansicht mit dem angegebenen Namen. Um auf externe URLs umzuleiten, muss man das Protokoll in die URL einbinden, 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;
}
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

Bei diesem Ansatz wird ein HttpServletResponse-Objekt verwendet, um den Standortheader festzulegen und Statuscode, wodurch die Weiterleitung erzwungen wird.

Ansatz 2:

@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public ModelAndView method() {
    return new ModelAndView("redirect:" + projectUrl);
}
Nach dem Login kopieren

Dieser Ansatz verwendet ein ModelAndView, um zur angegebenen URL umzuleiten.

Das obige ist der detaillierte Inhalt vonWie leite ich von Spring MVC Controller-Aktionen zu externen URLs um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage