映射器的属性清单

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.配置文件

  <!-- 使用BeanNameUrlHandlerMapping完成多个请求对应一个Action-->
<bean name="/add.action,/delete.action,/update.action,/find.action" class="cn.tele.springmvc_003.UserAction"></bean> <!-- 注册action时给与id属性 -->
<bean id="userAction" name="/userController.action" class="cn.tele.springmvc_003.UserController"></bean> <!-- 映射器(默认) -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> <!-- 使用SimpleUrlHandlerMapping完成多个请求对应一个Action -->
<!-- <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/add.action">userAction</prop>
<prop key="/delete.action">userAction</prop>
<prop key="/update.action">userAction</prop>
<prop key="/find.action">userAction</prop>
</props>
</property>
</bean> --> <!-- 通过类名.action的形式来访问,userController.action类名首字母小写 -->
<!-- <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
<property name="defaultHandler" ref="userAction"></property>
</bean> -->

值得一提的是这些映射器可以共存,但同一时刻只能有一个映射器起作用,调用哪一个映射器取决于你的访问方式和映射器的order值,多个不同的映射器组成了一条

链,order值越小,优先级越高,当优先级较高的映射器无法处理时会交给优先级低的处理,都无法匹配到处理器(即你定义的Controller)时Spring才会报错

 

SpringMVC handleMapping 处理器映射器 属性清单的更多相关文章

  1. springMVC入门(三)------springMVC的处理器映射器和处理器适配器配置

    简介 springMVC的处理器映射器和处理器适配器存在多种配置,因此在此专门做一个总结 常见处理器映射器.适配器的配置 springmvc多个映射器多个处理器可以并存 所有的映射器都实现了Handl ...

  2. SSM-SpringMVC-07:SpringMVC中处理器映射器

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping BeanN ...

  3. SpringMVC处理器映射器和方法名称解析器

    所谓配置式开发是指,“处理器类是程序员手工定义的,实现了特定接口的类,然后再在SpringMVC配置文件中对该类进行显式的,明确的注册”的开发方式” 1.处理器映射器HandlerMapping Ha ...

  4. 《SpringMVC从入门到放肆》四、SpringMVC配置式开发(处理器映射器)

    上一篇我们讲解了DispatcherServlet的url-pattern配置详解,今天我们来真正对SpringMVC进行配置式开发.所谓配置式开发是指“处理器类是程序员自己定义的.实现了特定接口的类 ...

  5. SpringMVC 学习笔记(处理器映射器的配置)

    前端控制器(dispatchServlet) 在web.xml中配置前端控制器,在服务器启动时就被创建,用来对请求和响应进行接收 和 分发处理,其在配置时可以设置一个初始化参数,用来定位SpringM ...

  6. springMVC三种处理器映射器

    1.配置处理器映射器,springmvc默认的处理器映射器BeanNameUrlHandlerMapping <bean class="org.springframework.web. ...

  7. 4.SpringMVC 配置式开发-处理器映射器

    处理器映射器 HandlerMapping HandlerMapping 接口负责根据request请求找到对应的Handler处理器及Interceptor拦截器, 并将它们封装在HandlerEx ...

  8. SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)

    SpringMVC简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 Spring结构图 Spr ...

  9. SpringMVC的HandlerMapping(处理器映射器)

    SpringMvc有四种HandlerMapping:BeanNameUrlHandlerMapping ,SimpleUrlHandlerMapping,ControllerClassNameHan ...

随机推荐

  1. Objective-C基础语法高速入门

    Objective-C是Mac软件开发领域最基本的开发语言,假如我们对C语言已经非常熟悉或者具有面向对象语言的基础.对于我们学习Objective-C将会非常实用. 方法调用(Calling Meth ...

  2. js中常见的一些兼容性问题

    1)滚动条: document.documentElement.scrollTop||document.body.scrollTop 2) 网页可视区域兼容 window.innerHeight || ...

  3. 腾讯云数据库团队:MySQL语句复制(SBR)的缺陷列举

    作者介绍: 赵伟 腾讯云TDSQL数据库开发者 MySQL (这里的MySQL是指广义的mysql,包括oracle,mysql,percona,mariadb等)的Statement Based R ...

  4. 自学Zabbix3.6.3-触发器triggers expression表达式

    触发器中的表达式使用很灵活,我们可以创建一个复杂的逻辑测试监控,触发器表达式形式如下: 1 {<server>:<key>.<function>(<param ...

  5. 自学Zabbix2.6-zabbix升级

    如果你从zabbix 1.6升级到1.8或者zabbix 1.8升级到zbbix 2.0,那么你需要额外执行sql文件(path.sql): 但是在2.0之后这些步骤都不需要手动做,如果你的版本很低, ...

  6. 采用Opserver来监控你的ASP.NET项目系列(三、监控你的服务器状态)

    前言 之前有过2篇关于如何监控ASP.NET core项目的文章,有兴趣的也可以看看. 今天我们主要来介绍一下,如何使用Opserver监控我们的服务器状态. Opserver的功能其实很强大,他可以 ...

  7. 八张图学通JavaScript 转自52

  8. Lvs+keepAlived实现负载均衡高可用集群(DR实现)

    第1章 LVS 简介 1.1 LVS介绍 LVS是Linux Virtual Server的简写,意为Linux虚拟服务器,是虚拟的服务器集群系统,可在UNIX/LINUX平台下实现负载均衡集群功能. ...

  9. SPCircleView的使用(圆心向四周扩散动画)

    今天封装了一个动画,想着以后可能会用,就封装了一下.欢迎下载 https://github.com/USimpleLife/SPCircleView 参数说明 @param centerPoint 中 ...

  10. Java零碎总结

    获取当前类运行的根目录(即classpath,如bin.classes.AppName等)的方式有: 1.Thread.currentThread().getContextClassLoader(). ...