一般に、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)
リファレンス
-
http://static.springsource.org/spring/docs/2.5.6/api/org/springframework/web/servlet/mvc/ParameterizableViewController.html
[ParameterizableViewController
ドキュメンテーション]。リンク://spring-mvc/spring-mvc-simpleurlhandlermapping-example/[Spring
MVC SimpleUrlHandlerMappingの例]