Redirection vers des URL externes dans Spring MVC
Dans Spring MVC, le préfixe redirect: est souvent utilisé pour rediriger les utilisateurs au sein de l'application. Cependant, il peut y avoir des cas où nous devons rediriger vers des URL externes.
Énoncé du problème
L'extrait de code suivant redirige les utilisateurs vers une URL au sein du projet :
@RequestMapping(method = RequestMethod.POST) public String processForm(..., String redirectUrl) { return "redirect:" + redirectUrl; }
Alternativement, le code suivant nécessite la spécification d'un protocole (HTTP/HTTPS) pour les redirections externes :
@RequestMapping(method = RequestMethod.POST) public String processForm(..., String redirectUrl) { return "redirect:" + "http://" + redirectUrl; }
Solution
Pour redirigez vers une URL externe sans spécifier le protocole ni rediriger vers une vue, envisagez ces solutions :
Méthode 1 :
Définissez directement l'en-tête Location et le code d'état :
@RequestMapping(value = "/redirect", method = RequestMethod.GET) public void method(HttpServletResponse httpServletResponse) { httpServletResponse.setHeader("Location", projectUrl); httpServletResponse.setStatus(302); }
Méthode 2 :
Utilisez ModelAndView pour rediriger vers l'URL externe :
@RequestMapping(value = "/redirect", method = RequestMethod.GET) public ModelAndView method() { return new ModelAndView("redirect:" + projectUrl); }
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!