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 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; }
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 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.
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!