一般に、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

を宣言してマッピングを自動検出します。

<bean
 class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>

<bean class="com.mkyong.common.controller.WelcomeController"/>

しかし、単純なリダイレクト・タスクでは構成が多すぎるとは思わないのですか?幸いにも、Springには上記のプロセスを単純化するために

ParameterizableViewController

が付属しています。

ParameterizableViewController

を使用すると、コントローラクラスのビュー名をハードコードする必要はなく、ParameterizableViewControllerの ”

viewName

“プロパティを使用してビュー名を宣言することができます。

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

    return new ModelAndView(getViewName());
}

チュートリアル

このチュートリアルでは、

ParameterizableViewController

コントローラを使用してSpring MVCアプリケーションでページリダイレクトを行う方法を示します。

1. ParameterizableViewController

  • ParameterNameViewController

    Beanを宣言し、 ”

    viewName ** “プロパティでビュー名を指定するだけでコントローラクラスは不要です。さらに、明示的なマッピングを定義する必要があります。

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/welcome.htm">welcomeController</prop>
            </props>
        </property>
    </bean>

   <bean name="welcomeController"
            class="org.springframework.web.servlet.mvc.ParameterizableViewController">
        <property name="viewName" value="WelcomePage"/>
   </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>
    </bean>

</beans>

  • 明示的なマッピングが必要です。**

<beans ...>//...
<bean
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>

<bean name="welcomeController"
    class="org.springframework.web.servlet.mvc.ParameterizableViewController">
    <property name="viewName" value="WelcomePage"/>
</bean>//...
</beans>

上記のスニペットでは、 “welcome”というビュー名が “WelcomePage”を返すと期待していますか?

ControllerClassNameHandlerMapping

は組み込みのSpring MVCコントローラのマッピングを生成しないため、

明示的マッピング

を定義する必要があります。

2.見る

見出しを表示する単純なJSPです。

  • WelcomePage.jsp.jsp **

<html>
<body>
<h2>ParameterizableViewController Example</h2>
</body>
</html>

デモ




http://localhost:8080/SpringMVC/welcome.htm


“でアクセスすると、 ”

welcome.htm

“は ”

/WEB-INF/pages/WelcomPage.jsp

“を返します。

SpringMVC-ParameterizableViewController-Example-1、title = “SpringMVC-ParameterizableViewController-Example-1″、width = 640、height = 220]

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

ダウンロードする –

SpringMVC-ParameterizableViewController-Example.zip

(7KB)

リファレンス

ドキュメンテーション]。リンク://spring-mvc/spring-mvc-simpleurlhandlermapping-example/[Spring

MVC SimpleUrlHandlerMappingの例]