Maison > Java > javaDidacticiel > Comment rediriger vers une URL externe à partir d'une action du contrôleur Spring MVC ?

Comment rediriger vers une URL externe à partir d'une action du contrôleur Spring MVC ?

Linda Hamilton
Libérer: 2024-11-29 14:47:10
original
358 Les gens l'ont consulté

How to Redirect to an External URL from a Spring MVC Controller Action?

Redirection vers une URL externe à partir d'une action de contrôleur dans Spring MVC

Lors d'une tentative de redirection vers une URL externe à partir d'une action de contrôleur dans Spring MVC , il est important de comprendre les limites de la syntaxe par défaut « redirect : ». Par défaut, Spring redirige vers les URL situées dans le chemin contextuel de l'application.

Redirection vers les URL internes

Comme démontré dans le premier extrait de code :

@RequestMapping(method = RequestMethod.POST)
public String processForm(...) {
    String redirectUrl = "yahoo.com";
    return "redirect:" + redirectUrl;
}
Copier après la connexion

Ce code tente de rediriger vers l'URL « yahoo.com » mais ne dispose pas d'un protocole valide (par exemple, http:// ou https://). En conséquence, Spring l'interprète comme une URL interne et redirige vers "yahoo.com" dans le chemin contextuel de l'application.

Redirection vers des URL externes avec protocole

Vers rediriger vers une URL externe avec un protocole, l'approche suivante peut être utilisée :

@RequestMapping(method = RequestMethod.POST)
public String processForm(...) {
    String redirectUrl = "http://www.yahoo.com";
    return "redirect:" + redirectUrl;
}
Copier après la connexion

En spécifiant le protocole dans l'URL, Spring correctement redirige l'utilisateur vers le site externe.

Redirection vers des URL externes sans protocole

Pour rediriger vers une URL externe sans protocole à l'aide de Spring MVC, deux alternatives existent :

Méthode 1 :

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

Cette méthode définit manuellement le En-tête "Location" et le code d'état HTTP approprié (302) dans la réponse pour déclencher une redirection.

Méthode 2 :

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

Cette méthode utilise le " ModelAndView" pour créer une réponse de redirection avec l'URL spécifié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