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; }
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 indiqué 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; }
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); }
Dans cette approche, un objet HttpServletResponse est utilisé pour définir l'en-tête d'emplacement et le code d'état, forçant ainsi la redirection.
Approche 2 :
@RequestMapping(value = "/redirect", method = RequestMethod.GET) public ModelAndView method() { return new ModelAndView("redirect:" projectUrl); }
Cette approche utilise un ModelAndView pour rediriger vers l'URL donnée.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3