"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como redirecionar para URLs externos a partir de ações do controlador Spring MVC?

Como redirecionar para URLs externos a partir de ações do controlador Spring MVC?

Publicado em 2024-11-20
Navegar:805

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

Redirecionando para URLs externos a partir de ações do controlador Spring MVC

No Spring MVC, redirecionar para URLs dentro do projeto é simples usando o prefixo redirect: . No entanto, redirecionar para URLs externos pode ser complicado, especialmente se o URL não especificar um protocolo válido.

Considere o código a seguir, que redireciona para um URL dentro do projeto:

@RequestMapping(method = RequestMethod.POST)
public String processForm(HttpServletRequest request, LoginForm loginForm, 
                          BindingResult result, ModelMap model) 
{
    String redirectUrl = "yahoo.com";
    return "redirect:"   redirectUrl;
}

Este código não redirecionará para o URL externo pretendido, mas sim para uma visualização com o nome fornecido. Para redirecionar para URLs externas, é necessário incluir o protocolo na URL, conforme mostrado abaixo:

@RequestMapping(method = RequestMethod.POST)
public String processForm(HttpServletRequest request, LoginForm loginForm, 
                              BindingResult result, ModelMap model) 
{
    String redirectUrl = "http://www.yahoo.com";
    return "redirect:"   redirectUrl;
}

No entanto, este método requer a presença de um protocolo válido. Para lidar com URLs sem protocolos válidos, duas abordagens estão disponíveis:

Abordagem 1:

@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public void method(HttpServletResponse httpServletResponse) {
    httpServletResponse.setHeader("Location", projectUrl);
    httpServletResponse.setStatus(302);
}

Nesta abordagem, um objeto HttpServletResponse é usado para definir o cabeçalho do local e o código de status, forçando o redirecionamento.

Abordagem 2:

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

Esta abordagem emprega um ModelAndView para redirecionar para o URL fornecido.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3