Spring MVC ControllerClassNameHandlerMappingの例
Spring MVCでは、
ControllerClassNameHandlerMapping
は、要求されたURLをControllerにマッピングするための規約を使用しています。クラス名を取り、存在する場合は ‘Controller’接尾辞を削除し、残りのテキストを小文字で、先頭に「/」を付けて返します。
この `ControllerClassNameHandlerMapping`クラスの使用法を示すために、以下のいくつかの例を参照してください。
1.前後
デフォルトでは、Spring MVCは `BeanNameUrlHandlerMapping`ハンドラマッピングを使用しています。
<beans ...> <bean name="/welcome.htm" class="com.mkyong.common.controller.WelcomeController"/> <bean name="/helloGuest.htm" class="com.mkyong.common.controller.HelloGuestController"/> </beans>
<beans ...> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> <bean class="com.mkyong.common.controller.WelcomeController"/> <bean class="com.mkyong.common.controller.HelloGuestController"/> </beans>
今、Spring MVCは要求されたURLを以下の規則に従ってマッピングしています:
WelcomeController ->/welcome** HelloGuestController ->/helloguest**
-
/welcome.htm – > WelcomeController.
-
/welcomeHome.htm – > WelcomeController.
-
/heloguest.htm – > HelloGuestController.
-
/heloguest12345.htm – > HelloGuestController.
-
/helloGuest.htm、
/helloguest
** をマップできませんでした. “g”の場合はありません.
一致。
2.大文字と小文字を区別
上記の大文字と小文字を区別する問題を解決するには、 ”
caseSensitive
“プロパティを宣言し、それをtrueに設定します。
<beans ...> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" > <property name="caseSensitive" value="true"/> </bean> <bean class="com.mkyong.common.controller.WelcomeController"/> <bean class="com.mkyong.common.controller.HelloGuestController"/> </beans>
今、Spring MVCは要求されたURLを次の規則に従ってマッピングしています:
WelcomeController ->/welcome** HelloGuestController ->/helloGuest**
-
/helloGuest.htm – > HelloGuestController.
-
/helloguest.htm、 “/helloGuest ** “のマッピングに失敗しました. “G”の場合はありません.
一致。
3. pathPrefix
さらに、接頭辞を指定して、要求されたURLをマップし、 ”
pathPrefix
“プロパティを宣言することができます。
<beans ...> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" > <property name="caseSensitive" value="true"/> <property name="pathPrefix" value="/customer"/> </bean> <bean class="com.mkyong.common.controller.WelcomeController"/> <bean class="com.mkyong.common.controller.HelloGuestController"/> </beans>
今、Spring MVCは要求されたURLを次の規則に従ってマッピングしています:
WelcomeController ->/customer/welcome** HelloGuestController ->/customer/helloGuest**
-
/customer/welcome.htm – > WelcomeController.
-
/customer/helloGuest.htm – > HelloGuestController.
-
/welcome.htm、失敗しました.
-
/helloGuest.htm、失敗しました.
ソースコードをダウンロードする
ダウンロードする –
SpringMVC-ControllerClassNameHandlerMapping-Example.zip
(7KB)
リファレンス
-
http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/web/servlet/mvc/support/ControllerClassNameHandlerMapping.html
[ControllerClassNameHandlerMapping
javadoc]