Maison > Java > javaDidacticiel > le corps du texte

Comment rediriger vers des URL externes à partir des actions du contrôleur Spring MVC ?

Patricia Arquette
Libérer: 2024-11-12 00:04:02
original
960 Les gens l'ont consulté

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

Redirection vers des URL externes à partir des actions du contrôleur Spring MVC

Dans Spring MVC, la redirection vers des URL au sein du projet est simple en utilisant le préfixe redirect: . Cependant, la redirection vers des URL externes peut être délicate, surtout si l'URL ne spécifie pas de protocole valide.

Considérez le code suivant, qui redirige vers une URL au sein du projet :

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

Ce code ne redirigera pas vers l'URL externe prévue mais redirigera plutôt vers une vue portant le nom donné. Pour rediriger vers des URL externes, il faut inclure le protocole dans l'URL, comme vu ci-dessous :

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

Cependant, cette méthode nécessite la présence d'un protocole valide. Pour gérer les URL sans protocoles valides, deux approches sont disponibles :

Approche 1 :

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

Dans cette approche, un objet HttpServletResponse est utilisé pour définir l'en-tête d'emplacement et le code d'état, forçant la redirection.

Approche 2 :

@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public ModelAndView method() {
    return new ModelAndView("redirect:" + projectUrl);
}
Copier après la connexion

Cette approche utilise un ModelAndView pour rediriger vers l'URL donnée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal