Spring MVC RedirectViewの例
Spring MVCでは、org.springframework.web.servlet.view.RedirectViewは、名前が示すように、ビューが別の絶対URL、コンテキスト相対URL、または現在の要求相対URLにリダイレクトします。 このチュートリアルでは、RedirectViewクラスを使用する完全な例を示します。
1. RedirectView
「DummyRedirect」という名前のRedirectView Beanを宣言し、URL「DummyRedirectPage.htm」にリダイレクトします。
ファイル:spring-views.xml
2. コントローラ
RedirectViewビューである「DummyRedirect」という名前のModelAndViewを返すコントローラー。
ファイル: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
ユースケースの1つは、「RedirectView」の概念を適用してduplicated form submission in Spring MVCを解決することです。
ソースコードをダウンロード
ダウンロード–SpringMVC-RedirectView-Example.zip(7KB)