Spring MVC ControllerClassNameHandlerMapping示例

在Spring MVC中, ControllerClassNameHandlerMapping使用约定将请求的URL映射到Controller(通过配置进行约定)。 它使用类名,删除“ Controller”后缀(如果存在),并返回其余的文本,小写并以“ /”开头。

请参见以下几个示例,以演示此ControllerClassNameHandlerMapping类的用法。

1.之前和之后

默认情况下,Spring MVC使用BeanNameUrlHandlerMapping处理程序映射。

<beans ...>

  <bean name="/welcome.htm" 
        class="com.mkyong.common.controller.WelcomeController" />
	
  <bean name="/helloGuest.htm" 
        class="com.mkyong.common.controller.HelloGuestController" />

</beans>

要启用ControllerClassNameHandlerMapping ,请在bean配置文件中对其进行声明,现在不再需要该控制器的bean名称

<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>

现在,Spring MVC通过以下约定映射请求的URL:

WelcomeController -> /welcome*
HelloGuestController -> /helloguest*
  1. /welcome.htm –> WelcomeController。
  2. /welcomeHome.htm –> WelcomeController。
  3. /helloguest.htm –> HelloGuestController。
  4. /helloguest12345.htm –> HelloGuestController。
  5. /helloGuest.htm,无法映射/ helloguest * ,“ g”大小写不匹配。

2.区分大小写

要解决上述区分大小写的问题,请声明“ caseSensitive ”属性并将其设置为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>

现在,Spring MVC通过以下约定映射请求的URL:

WelcomeController -> /welcome*
HelloGuestController -> /helloGuest*
  1. /helloGuest.htm –> HelloGuestController。
  2. /helloguest.htm,无法映射“ / helloGuest *”,“ G”大小写不匹配。

3. pathPrefix

另外,您可以指定一个前缀来映射所请求的URL,并声明为“ pathPrefix ”属性。

<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>

现在,Spring MVC通过以下约定映射请求的URL:

WelcomeController -> /customer/welcome*
HelloGuestController -> /customer/helloGuest*
  1. /customer/welcome.htm –> WelcomeController。
  2. /customer/helloGuest.htm –> HelloGuestController。
  3. /welcome.htm,失败。
  4. /helloGuest.htm,失败。

下载源代码

下载它– SpringMVC-ControllerClassNameHandlerMapping-Example.zip (7KB)

参考

  1. ControllerClassNameHandlerMapping javadoc

翻译自: https://mkyong.com/spring-mvc/spring-mvc-controllerclassnamehandlermapping-example/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值