zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    『BASH』——文件权限批量恢复脚本——「Permission Revovery」
    拾遗:基础知识回顾01
    C之:微代码——柱状图(link_list、struct)
    拾遗:yes 是一个很有用的小命令
    『BASH』
    拾遗:『ext4 Quota』
    循环动态生成html并且绑定事件带参函数
    asp.net页面间传递数据的方法(ZZ)
    Session对象概述
    HTML DOM Introduction 翻译 w3schools.com
  • 原文地址:https://www.cnblogs.com/ghgyj/p/4755300.html
Copyright © 2011-2022 走看看