SpringMVC之中的的HandlerMapping处理器映射器能根据请求的url找到对应的Handler处理器以及Interceptor拦截器,将他们封装在HandlerExcutionChain对象之中并返回给前端控制器。
我们可以在classpash之中的springMVC.xml之中配置我们的处理器映射器,只要配置在你的xml配置文件之中即可。
<span style="white-space:pre"> </span><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"></bean>
一个xml文件之中可以存在多个映射器,只要前端的控制器能判断url能让哪个映射器进行映射,就可以让正确的映射器进行映射。
配置的详情如下:
BeanNameUrlHandlerMapping
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!-- 实例化了这个对象BeanNameUrlHandlerMapping后,这个映射器可以根据请求的url与spring容器之中定义的bean的name进行匹配,
从而找到bean实例 如下-->
<!-- 配置处理器映射 的方法 访问/hello1.action 即可由HelloController处理器处理 -->
<bean id = "helloController" name="/hello1.action" class="controller.HelloController"/>
此处实例化了BeanNameUrlHandlerMapping,和一个处理器HelloController,并设置HelloController的name为/hello.action,当前端请求的urlweihello1.action时,BeanNameUrlHandlerMapping就能从spring容器之中找到name为hello1.action的bean 也就是我们的HelloController进行处理。
SimpleUrlHandlerMapping
<bean id = "helloController" name="/hello1.action" class="controller.HelloController"/>
<!-- SimpleUrlHandlerMapping 是BeanNameUrlHandlerMapping的增强版本,它可以将处理器的id和请求的url进行统一映射 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello2.action">helloController</prop>
</props>
</property>
</bean>
我们实例化了一个bean,并将其id设为helloController,我们在SimpleUrlHandlerMapping这个bean之中进行这样的配置的时候,就能通过hello2.action调用HelloController
源文件代码