Spring MVC ControllerClassNameHandlerMapping example
handler mapping是把url跟控制器关联起来。
In Spring MVC, ControllerClassNameHandlerMapping use convention to map requested URL to Controller (convention over configuration). It takes the Class name, remove the ‘Controller’ suffix if exists and return the remaining text, lower-cased and with a leading “/”.
See following few examples to demonstrate the use of this ControllerClassNameHandlerMapping class.
1. Before and After
By default, Spring MVC is using the BeanNameUrlHandlerMapping handler mapping.
<beans ...>
<bean name="/welcome.htm"
class="com.mkyong.common.controller.WelcomeController" />
<bean name="/helloGuest.htm"
class="com.mkyong.common.controller.HelloGuestController" />
</beans>
To enable the ControllerClassNameHandlerMapping, declared it in the bean configuration file, and now the controller’s bean’s name is no longer required.
<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>
Now, Spring MVC is mapping the requested URL by following conventions :
WelcomeController -> /welcome*
HelloGuestController -> /helloguest*
/welcome.htm –> WelcomeController.
/welcomeHome.htm –> WelcomeController.
/helloguest.htm –> HelloGuestController.
/helloguest12345.htm –> HelloGuestController.
/helloGuest.htm, failed to map /helloguest*, the “g” case is not match.
2. Case sensitive
To solve the case sensitive issue stated above, declared the “caseSensitive” property and set it to 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>
Now, Spring MVC is mapping the requested URL by the following conventions :
WelcomeController -> /welcome*
HelloGuestController -> /helloGuest*
/helloGuest.htm –> HelloGuestController.
/helloguest.htm, failed to map “/helloGuest*”, the “G” case is not match.
3. pathPrefix
Additionally, you can specify a prefix to maps the requested URL, declared a “pathPrefix” property.
<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>
Now, Spring MVC is mapping the requested URL by the following conventions :
WelcomeController -> /customer/welcome*
HelloGuestController -> /customer/helloGuest*
/customer/welcome.htm –> WelcomeController.
/customer/helloGuest.htm –> HelloGuestController.
/welcome.htm, failed.
/helloGuest.htm, failed.
Spring MVC ControllerClassNameHandlerMapping example的更多相关文章
- spring mvc: 参数方法名称解析器(用参数来解析控制器下的方法)MultiActionController/ParameterMethodNameResolver/ControllerClassNameHandlerMapping
spring mvc: 参数方法名称解析器(用参数来解析控制器下的方法)MultiActionController/ParameterMethodNameResolver/ControllerClas ...
- spring mvc: 属性方法名称解析器(多动作控制器)MultiActionController/ControllerClassNameHandlerMapping/PropertiesMethodNameResolver
spring mvc: 属性方法名称解析器(多动作控制器) 加入控制器是StudentContrller.java,里面有3个方法 index,add,remove 那么访问地址是: http://l ...
- Spring mvc源码url路由-我们到底能走多远系列(38)
我们到底能走多远系列38 扯淡: 马航的事,挺震惊的.还是多多珍惜身边的人吧. 主题: Spring mvc 作为表现层的框架,整个流程是比较好理解的,毕竟我们做web开发的,最早也经常接触的就是一个 ...
- Spring MVC 中的基于注解的 Controller【转】
原文地址:http://my.oschina.net/abian/blog/128028 终于来到了基于注解的 Spring MVC 了.之前我们所讲到的 handler,需要根据 url 并通过 H ...
- Spring MVC MultiActionController example
In Spring MVC application, MultiActionController is used to group related actions into a single cont ...
- Configure the handler mapping priority in Spring MVC
Often times, you may mix use of multiple handler mappings strategy in Spring MVC development. For ex ...
- Spring MVC Checkbox And Checkboxes Example
In Spring MVC, <form:checkbox /> is used to render a HTML checkbox field, the checkbox values ...
- Spring MVC中基于注解的 Controller
终于来到了基于注解的 Spring MVC 了.之前我们所讲到的 handler,需要根据 url 并通过 HandlerMapping 来映射出相应的 handler 并调用相应的方法以响 ...
- spring mvc DispatcherServlet详解之一--request通过HandlerMaping获取控制器Controller过程
整个spring mvc的架构如下图所示: 现在来讲解DispatcherServletDispatcherServlet的第一步:获取控制器. HandlerMapping HandlerMappi ...
随机推荐
- When you’re nearly 40 and unmarried, and you realize you’re going to be okay
https://medium.com/the-gathering-kind/when-you-re-nearly-40-and-unmarried-and-you-realize-you-re-goi ...
- [HDOJ2874]Connections between cities(LCA, 离线tarjan)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2874 这题有不连通的情况,特别注意. 觉得是存query的姿势不对,用前向星存了一遍,还是T…… /* ...
- JS创建类以及类的方法(StringBuffeer类)
创建StringBuffer类以及toString,append()方法 //创建一个StringBuffer类 ,此类有两个方法:一个是append方法一个是toString方法 function ...
- 1205. By the Underground or by Foot?(spfa)
1205 简单题 有一些小细节 两个站可能不相连 但是可以走过去 #include <iostream> #include<cstdio> #include<cstrin ...
- sdut 2840 Best string Orz~ (dp)
题目 题意:有n1个o, n2个r, n3个z, n4个~, 求有多少种组合使 组合出来的字符串的任意前缀都满足 o的个数>=r的个数, r的个数>=z的个数 …………………… 思路:递推 ...
- Python3 学习第一弹:基本数据类型
本人学习主要从<python基础教程第二版>,<dive into python3>等书籍,及一些网上大牛的博客中学习特别是Python官方文档<Python Tutor ...
- truncate table 和delete
delete table 和 truncate table 使用delete语句删除数据的一般语法格式: delete [from] {table_name.view_name} [where< ...
- iOS开发:记录开发中遇到的编译或运行异常以及解决方案
1.部署到真机异常 dyld`dyld_fatal_error: -> 0x120015088 <+0>: brk #0x3 dyld: Library not loaded ...
- css动画集合地址
CSS3 UI Lib库是由腾讯AlloyTeam前端开发团队建立,主要收集国内外友好体验和创意的界面组件Demo. 它除了使用CSS3技术外,还使用了HTML5,JS,JX,jQuery等技术,来达 ...
- UVA 11396 Claw Decomposition(二分图)
以“爪”形为单元,问所给出的无向图中能否被完全分割成一个个单元. 分析图的性质,由于已知每个点的度是3,所以“爪”之间是相互交错的,即把一个“爪”分为中心点和边缘点,中心点被完全占据,而边缘点被三个“ ...