SpringMVC 通过 HandlerAdapter 的 handler 方法来调用请求处理函数。在 DispatcherServlet 中根据请求路径利用 Handlermapping 找到对应的 handler 后,首先检查当前 Ioc 容器中所有可用的 HandlerAdapter ,再利用 HandlerAdapter 中的 supports 方法找到可以使用的HandlerAdapter。
不同的适配器用于适配不同的Controller。下面介绍两个常用的HandleAdapter
一、SimpleControllerhandlerAdapter: 调用controller里面方法,返回modelAndView。
下面我们分析一下该类的源码:
在实现类中:
具体配置文件:
<!-- 配置处理器适配器执行Controlelr ,springmvc默认的,可以不写。 -->
<bean
class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
二、HttpRequestHandlerAdapter
--复杂执行实现接口HttpRequestHandler 接口的Controller,接近于servlet开发。
实现方式:
注:该方式只能跳转到物理视图地址.
springmvc配置文件:
<!-- HttpRequestHandlerAdapter负责执行实现接口HttpRequestHandler的后端 控制器。 -->
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>
注:两种适配器可以共存。