1、SimpleControllerHandlerAdapter
功能:执行controller
调用controller里面方法,返回modelAndView。
1.1 springmvc.xml配置
<!-- HttpRequestHandlerAdapter负责执行实现接口HttpRequestHandler的后端
控制器。
-->
<!--处理器适配器2 实现接口HttpRequestHandler-->
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>
1.2 后台controller实现Controller接口
public class TestSpringMvcController implements Controller {
@Override
public ModelAndView handleRequest(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mv = new ModelAndView();
//设置页面回显数据
mv.addObject("hello", "欢迎学习springmvc!");
//返回逻辑视图
mv.setViewName("hello");
return mv;
}
}
2、HttpRequestHandlerAdapter
功能:执行controller,跳转到视图
2.1 springmvc配置
<!-- 配置处理器适配器执行Controlelr ,springmvc默认的
SimpleControllerHandlerAdapter:执行Controller
-->
<!--处理器适配器1默认-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
2.2 后台controller实现HttpRequestHandler接口
public class TestHttpController implements HttpRequestHandler {
@Override
public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("http", "测试http适配器成功");
request.getRequestDispatcher("/WEB-INF/jsps/http.jsp").forward(request, response);
}
}
总结:两种适配器可以共存,配置不同的映射器找到不同的controller
<!-- 简单处理器映射器:
把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>
<!-- 配置自定义Controler -->
<bean id="myController" name="/hello.do"
class="controller.TestSpringMvcController"></bean>
<!--<!– 配置自定义HttpController –>-->
<bean id="http" class="controller.TestHttpController"></bean>