Exemple Spring MVC RedirectView
Dans Spring MVC, org.springframework.web.servlet.view.RedirectView, comme son nom l'indique, une vue redirigeant vers une autre URL absolue, relative au contexte ou relative à la demande actuelle. Dans ce tutoriel, nous vous montrons un exemple complet d'utilisation de la classeRedirectView.
1. RedirectView
Déclarez un bean RedirectView, nommé «DummyRedirect», redirigez vers l'URL «DummyRedirectPage.htm».
Fichier: spring-views.xml
2. Manette
Un contrôleur pour renvoyer un ModelAndView nommé «DummyRedirect», qui est une vue RedirectView.
Fichier: DummyController.java
package com.example.common.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; public class DummyController extends AbstractController{ @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { return new ModelAndView("DummyRedirect"); } }
3. Configuration du ressort
Déclaré tous les mappages.
Fichier: mvc-dispatcher-servlet.xml
dummyRedirectController /WEB-INF/pages/ .jsp /WEB-INF/spring-views.xml
4. Comment ça fonctionne?
1. Accédez à l'URLhttp://localhost:8080/SpringMVC/dummy.htm.
2. «ControllerClassNameHandlerMapping» correspond à «DummyController» et renvoie unModelAndView(“DummyRedirect”).
3. «XmlViewResolver» lui correspond et renvoie une URL «DummyRedirectPage.htm».
4. «SimpleUrlHandlerMapping» lui correspond et renvoie un contrôleur «dummyRedirectController».
dummyRedirectController
5. Le contrôleur ParameterizableViewController, «dummyRedirectController», renvoie une vue nommée «DummyPage».
6. InternalResourceViewResolver le correspond et renvoie la page jsp finale, «/WEB-INF/pages/DummyPage.jsp».
/WEB-INF/pages/ .jsp
7. L'URL a été modifiée en «http://localhost:8080/SpringMVC/DummyRedirectPage.htm».
Redirect Prefix
Alternativement, si vous avez configuré InternalResourceViewResolver, vous pouvez utiliser les «Redirect Prefix» dans le nom de la vue pour résoudre la vue de redirection. Par exemple,
Fichier: DummyController.java
//... public class DummyController extends AbstractController{ @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { return new ModelAndView("redirect:DummyRedirectPage.htm"); } }
Use case
Un des cas d'utilisation est l'application du concept «RedirectView» pour résoudre lesduplicated form submission in Spring MVC.
Télécharger le code source
Téléchargez-le -SpringMVC-RedirectView-Example.zip (7 Ko)