• SpringMVC handleMapping 处理器映射器 属性清单


    映射器的属性清单

    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才会报错

     

  • 相关阅读:
    数据库事务的特性以及隔离级别
    非受检异常(运行时异常)和受检异常的区别等
    在测试crontab执行脚本的时候,修改了linux的系统时间,crontab不执行了。
    perl的foreach循环的坑
    javascript中快速求数组的全部元素的相加之和
    js 百度地图
    PHP 取前一天或后一天、一个月时间
    php截取字符串函数
    js jquery 基本元素操作
    PHP 替换标签和标签内的内容
  • 原文地址:https://www.cnblogs.com/tele-share/p/7868806.html
Copyright © 2020-2023  润新知