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
Patricia ArquetteOriginal
2024-11-12 00:04:021033Durchsuche

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;
}

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;
}

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 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);
}

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!

Stellungnahme:
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