springmvc的2种处理器适配器

时间:2019-01-10
本文章向大家介绍springmvc的2种处理器适配器,主要包括springmvc的2种处理器适配器使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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>

        <!--&lt;!&ndash; 配置自定义HttpController &ndash;&gt;-->
        <bean id="http" class="controller.TestHttpController"></bean>