当用户通过URL发来请求、在Controller 层 springmvc 要根据配置文件来决定哪一个Controller 对象处理该请求。该过程是通过处理器映射器HandlerMapping类来决定。
首先看一下HandlerMapping 类图以及子类间的关系:
下面我们介绍常用的三种配置方式:
方式一:通过BeanNameUrlHandlerMapping 也就是根据url请求去匹配bean的name属性url,从而获取Controller。Springmvc配置文件如下:
<bean
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<!-- 配置自定义Controler -->
<bean id="myController" name="/hello.do" class="cn.zn.controller.MyController"></bean>
方式二:通过SimpleUrlHandlerMapping 也就是 根据浏览器url匹配简单url的key,key又Controller的id找到Controller。Springmvc配置文件如下:该方式可以将URL集中配置
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/abc.do">myController</prop>
<prop key="/ss.do">http</prop>
<prop key="/mine.do">http</prop>
</props>
</property>
</bean>
方式三:通过ControllerClassNameHandlerMapping 也就是根据类名(MyController)类名.do来访问,类名首字母小写.
<bean
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
注:多个映射器可以共存互不影响。