Spring MVC RedirectViewの例

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)