開発者ドキュメント

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]
モバイルバージョンを終了