非注解的处理器映射器和适配器
- org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping
!-- 处理器映射器
将bean的name作为url进行查找,需要在配置Handler是指定beanname(就是url)
-->
<bean class = "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
- 简单url映射
org.springframework.web.servlet.handler.SimpleUrlHandlerMapping,多个映射器可以并存,也就是前端控制器判断url能让哪些映射器映射,就让哪些映射器处理
<!-- 简单url映射 -->
<bean class = "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!-- 对itemsController1进行url映射,url是/queryItems1.action -->
<prop key="/queryItems1.action">itemsController1</prop>
<prop key="/queryItems2.action">itemsController1</prop>
<prop key="/queryItems3.action">itemsController2</prop>
</props>
</property>
</bean>
- 非注解的适配器
- org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
要求编写的Handler实现controller接口
<!-- 处理器适配器
所有的处理器适配器都实现HandlerAdapter接口
-->
<bean class = "org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
- org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
要求编写的handler实现HttpRequestHandler接口
<!-- 另一个非注解的适配器 -->
<bean class = "org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>
注解的处理器映射器和适配器
使用注解的映射器和注解的适配器(注解的映射器和适配器必须配对使用),在spring容器中加载Handler(使用组件扫描)
1. 注解的处理器映射器与适配器
<!-- 注解映射器 -->
<!-- <bean class ="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> -->
<!-- 注解的适配器 -->
<!-- <bean class ="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> -->
- 注解的处理器映射器与适配器
<mvc:annotation-driven ></mvc:annotation-driven>
- 组件扫描
<!-- 可以扫描controller、service.... -->
<!-- <bean class = "com.shagou.ssm.controller.ItemsController3"/> -->
<context:component-scan base-package="com.shagou.ssm.controller"></context:component-scan>
视图解析器前缀和后缀
<!-- 配置jsp路径的前缀和后缀 -->
<property name="prefix" value = "/WEB-INF/jsp/"></property>
<property name="suffix" value = ".jsp"></property>
//下边的路径如果在视图解析器中配置了jsp前缀和jsp后缀,修改为
//modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
//上边路径可以不再程序中配置
modelAndView.setViewName("items/itemsList");