Spring MVC RedirectViewの例
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]