Spring MVC RedirectView пример
В Spring MVC org.springframework.web.servlet.view.RedirectView, как указано в названии, перенаправляет представление на другой абсолютный, относительный к контексту или текущий относительный URL-адрес запроса. В этом руководстве мы покажем вам полный пример использования классаRedirectView.
1. RedirectView
Объявите bean-компонент RedirectView с именем «DummyRedirect», перенаправляющий на URL-адрес «DummyRedirectPage.htm».
Файл: spring-views.xml
2. контроллер
Контроллер для возврата ModelAndView с именем «DummyRedirect», который является представлением RedirectView.
Файл: 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. Конфигурация пружины
Объявлены все сопоставления.
Файл: mvc-dispatcher-servlet.xml
dummyRedirectController /WEB-INF/pages/ .jsp /WEB-INF/spring-views.xml
4. Как это устроено?
1. Получите доступ к URLhttp://localhost:8080/SpringMVC/dummy.htm.
2. «ControllerClassNameHandlerMapping» соответствует «DummyController» и возвращаетModelAndView(“DummyRedirect”).
3. «XmlViewResolver» соответствует ему и возвращает URL «DummyRedirectPage.htm».
4. «SimpleUrlHandlerMapping» соответствует ему и возвращает контроллер «dummyRedirectController».
dummyRedirectController
5. Контроллер ParameterizableViewController, «dummyRedirectController», возвращает представление с именем «DummyPage».
6. InternalResourceViewResolver сопоставляет его и возвращает последнюю страницу jsp, «/WEB-INF/pages/DummyPage.jsp».
/WEB-INF/pages/ .jsp
7. URL изменен на «http://localhost:8080/SpringMVC/DummyRedirectPage.htm».
Redirect Prefix
Альтернатива, если у вас настроен InternalResourceViewResolver, вы можете использовать «Redirect Prefix» в имени представления для разрешения представления перенаправления. Например,
Файл: 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
Один из вариантов использования - применение концепции «RedirectView» для решенияduplicated form submission in Spring MVC.
Скачать исходный код
Скачать -SpringMVC-RedirectView-Example.zip (7KB)