Spring MVC ParameterizableViewControllerの例

Spring MVC ParameterizableViewControllerの例

一般に、Spring MVCアプリケーションでビューまたはページを返すには、AbstractControllerを拡張するクラスを作成し、ModelAndView()オブジェクトを返す必要があります。

public class WelcomeController extends AbstractController{

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
        HttpServletResponse response) throws Exception {

        ModelAndView model = new ModelAndView("WelcomePage");
        return model;

    }

}

Bean構成ファイルで、マッピングを自動検出するためにControllerClassNameHandlerMappingを宣言しました。



しかし、単純なリダイレクトタスクには設定が多すぎると思いませんか? 幸い、Springには上記のプロセスを簡素化するためのParameterizableViewControllerが付属しています。 ParameterizableViewControllerを使用すると、コントローラークラスにビュー名をハードコーディングする必要がなくなります。代わりに、ParameterizableViewControllerの「viewName」プロパティを使用してビュー名を宣言的に配置します。

Note
ParameterizableViewControllerはAbstractControllerのサブクラスであり、「viewName」プロパティに基づいてModelAndViewを返します。it’s purely a redirect class、それ以上でもそれ以下でもありません:)

ParameterizableViewController.java

public class ParameterizableViewController extends AbstractController{
//...
protected ModelAndView handleRequestInternal(
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {

    return new ModelAndView(getViewName());
}

チュートリアル

このチュートリアルでは、ParameterizableViewControllerコントローラーを使用してSpringMVCアプリケーションでページリダイレクトを実行する方法を示します。

1. ParameterizableViewController

コントローラクラスは必要ありません。ParameterizableViewController Beanを宣言し、「viewName」プロパティを使用してビュー名を指定するだけです。 さらに、明示的なマッピングを定義する必要があります。



    
        
            
                welcomeController
            
        
    

   
        
   

   
            
              /WEB-INF/pages/
            
            
              .jsp
            
    

明示的なマッピングを定義する必要があります。


//...



    

//...

上記のスニペットでは、ビュー名「welcome」が「WelcomePage」を返すと予想していますか? 申し訳ありませんが、そうではありません。ControllerClassNameHandlerMappingは、組み込みのSpring MVCコントローラーのマッピングを生成しないため、explicit mappingを定義する必要があります。

2. View

見出しを表示するための単純なJSP。

WelcomePage.jsp.jsp



ParameterizableViewController Example

3. Demo

http://localhost:8080/SpringMVC/welcome.htm」を介してアクセスすると、「welcome.htm」は「/WEB-INF/pages/WelcomPage.jsp」を返します。

SpringMVC-ParameterizableViewController-Example-1

ソースコードをダウンロード