SpringMVChandleMapping 处理器映射器 属性清单

宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述SpringMVChandleMapping 处理器映射器 属性清单相关的知识,希望能为你提供帮助。
映射器的属性清单
defaultHandler          在映射与所有处理器都不匹配的情况下,指定默认的处理器(处理器即你定义的Controller(action)类)
order                        Spring根据order的值对映射器进行排序,并使用第一个匹配的处理器,order值越小优先级越高(相当于链的索引位置,从0开始,0级最高)
interceptors              使用的拦截器列表
alwaysUseFullPath 是否使用servlet context中的全路径匹配处理器,默认false
urlDecode      默认false,如果你希望映射器在寻找处理器之前对URL/URI进行解码,那么将此属性设置为true.
lazyInitHandlers      默认false,可以对单例处理器进行延迟初始化
urlPathHelper    可以通过此属性来检查URL,一般无需修改其默认值
spingmvc的映射器有很多,但常用的就三种BeanNameUrlHandlerMapping(默认映射器),SimpleUrlHandlerMapping,ControllerClassNameHandlerMapping
说明:我的web.xml里用的是< url-pattern> *.action< /url-pattern>
1.BeanNameUrlHandlerMapping
顾名思义,是以Bean的name属性作为url来访问的时候进行映射,那么这个bean指的是什么?当然指的我们开发人员自己定义的Controller(action)
这里我使用的是userController
地址栏:http://127.0.0.1:8080/项目/userController.action
具体配置文件见下面

 
 
2.SimpleUrlHandlerMapping
这个映射器通常用于处理多个请求对应一个Controller(action)的情况,当然也可以用别名的方式替代此映射器.具体配置文件见下面
 
 
3.ControllerClassNameHandlerMapping
使用Controller的类名(首字母小写).action来访问时进行映射
使用这个映射器要注意的是你的Controller类命名必须是xxxController,而不能是xxxAction这种,否则会找不到
当然,你可以给它加个defaultHandler属性,指定一个默认处理器(即你定义的Controller类),但这样就没有必要使用此映射器了
 
 
4.配置文件

1< !-- 使用BeanNameUrlHandlerMapping完成多个请求对应一个Action--> 2< bean name="/add.action,/delete.action,/update.action,/find.action" class="cn.tele.springmvc_003.UserAction"> < /bean> 3 4< !-- 注册action时给与id属性 --> 5< bean id="userAction" name="/userController.action" class="cn.tele.springmvc_003.UserController"> < /bean> 6 7< !-- 映射器(默认) --> 8< bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"> < /bean> 9 10< !-- 使用SimpleUrlHandlerMapping完成多个请求对应一个Action --> 11< !-- < bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 12< property name="mappings"> 13< props> 14< prop key="/add.action"> userAction< /prop> 15< prop key="/delete.action"> userAction< /prop> 16< prop key="/update.action"> userAction< /prop> 17< prop key="/find.action"> userAction< /prop> 18< /props> 19< /property> 20< /bean> --> 21 22< !-- 通过类名.action的形式来访问,userController.action类名首字母小写 --> 23< !-- < bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"> 24< property name="defaultHandler" ref="userAction"> < /property> 25< /bean> -->

 
值得一提的是这些映射器可以共存,但同一时刻只能有一个映射器起作用,调用哪一个映射器取决于你的访问方式和映射器的order值,多个不同的映射器组成了一条
链,order值越小,优先级越高,当优先级较高的映射器无法处理时会交给优先级低的处理,都无法匹配到处理器(即你定义的Controller)时Spring才会报错
 
【SpringMVChandleMapping 处理器映射器 属性清单】 


    推荐阅读