Spring MVCでは、org.springframework.web.servlet.view.RedirectViewは、指定された名前で、別の絶対、コンテキスト相対、または現在の要求相対URLにリダイレクトされます。このチュートリアルでは、
RedirectView
クラスの使用例を紹介します。
1. RedirectView
「
DummyRedirect
」という名前のRedirectView Beanを宣言し、URL「
DummyRedirectPage.htm
」にリダイレクトします。
File:spring-views.xml
<beans ...> <!-- Redirect view --> <bean id="DummyRedirect" class="org.springframework.web.servlet.view.RedirectView"> <property name="url" value="DummyRedirectPage.htm"/> </bean> </beans>
2.コントローラー
”
DummyRedirect
“という名前のModelAndViewを返すコントローラ。これはRedirectViewビューです。
ファイル:Dummy Controller.java
package com.mkyong.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.スプリング構成
すべてのマッピングを宣言しました。
File:mvc-dispatcher-servlet.xml
<beans ...> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> <bean class="com.mkyong.common.controller.DummyController"/> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/DummyRedirectPage.htm">dummyRedirectController</prop> </props> </property> </bean> <bean id="dummyRedirectController" class="org.springframework.web.servlet.mvc.ParameterizableViewController"> <property name="viewName" value="DummyPage"/> </bean> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" > <property name="prefix"> <value>/WEB-INF/pages/</value> </property> <property name="suffix"> <value>.jsp</value> </property> <property name="order" value="1"/> </bean> <bean class="org.springframework.web.servlet.view.XmlViewResolver"> <property name="location"> <value>/WEB-INF/spring-views.xml</value> </property> <property name="order" value="0"/> </bean> </beans>
4.どのように動作するのですか?
{空} 1。 URL
http://localhost:8080/SpringMVC/dummy.htm
にアクセスします。
{空} 2。 “ControllerClassNameHandlerMapping”が ”
DummyController
“と一致し、ModelAndView( “DummyRedirect”)** を返します。
{空} 3。 ”
XmlViewResolver
“がそれを照合し、URL ”
DummyRedirectPage.htm
“を返します。
<bean id="DummyRedirect" class="org.springframework.web.servlet.view.RedirectView"> <property name="url" value="DummyRedirectPage.htm"/> </bean>
{空} 4。 ”
SimpleUrlHandlerMapping
“はそれを照合してコントローラ ”
dummyRedirectController
“を返します。
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/DummyRedirectPage.htm">dummyRedirectController</prop> </props> </property> </bean>
{空} 5。 ParameterizableViewControllerコントローラ ”
dummyRedirectController
“は、 ”
DummyPage
“という名前のビューを返します。
<bean id="dummyRedirectController" class="org.springframework.web.servlet.mvc.ParameterizableViewController"> <property name="viewName" value="DummyPage"/> </bean>
{空} 6。 InternalResourceViewResolverはそれをマッチして、最終的なJSPページ ”
/WEB-INF/pages/DummyPage.jsp
“を返します。
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" > <property name="prefix"> <value>/WEB-INF/pages/</value> </property> <property name="suffix"> <value>.jsp</value> </property> <property name="order" value="1"/> </bean>
{空} 7。 URLが「
http://localhost:8080/SpringMVC/DummyRedirectPage.htm
」に変更されました。
ファイル:Dummy Controller.java
….//…
public class DummyController extends AbstractController{
@Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
return new ModelAndView("redirect:DummyRedirectPage.htm");
} }
** ユースケース** ユースケースの1つは、リンクを解決するための "RedirectView"コンセプトを適用することです://spring-mvc/handling-duplicate-form-submission-in-spring-mvc/[Spring MVCでの複製フォームの提出] === ソースコードをダウンロードする ダウンロードする - link://wp-content/uploads/2010/08/SpringMVC-RedirectView-Example.zip[SpringMVC-RedirectView-Example.zip](7KB) === 参考文献 . http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/web/servlet/view/RedirectView.html[RedirectView Javadoc]。 http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html#mvc-redirecting[SpringSource RedirectViewの説明]。 http://forum.springsource.org/archive/index.php/t-42435.html[How リダイレクトビューを正確に使用するには?] link://tag/spring-mvc/[spring mvc]