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