美文网首页
Spring7-编写第一个Handler(非注解)

Spring7-编写第一个Handler(非注解)

作者: 我相信你爱过gg | 来源:发表于2017-05-06 23:07 被阅读32次

    配置处理器适配器

    <!-- 处理器适配器 -->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    

    这个处理器适配器的作用是用来执行Handler.
    有人可能会问我只配置一个bean就知道是适配器吗?
    答:所有的处理器适配器,都实现了HandlerAdapter接口.
    其中有一个supports方法.

    这个方法的作用是判断这个适配器,支持哪一种类型的Handler.
    上面的这个截图就表明,此适配器支持实现Controller接口的Handler.

    编写Handler

    我们写的这个Handler必须实现Controller接口才能由SimpleControllerHandlerAdapter适配器执行.

    public class TestController implements Controller {
        @Override
        public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
            //例如我们的这个测试的Handler是用来做查询用户测试的
            //这里会调用service的查询用户的功能.
    
            //这个方法需要返回一个ModelAndView对象所以我们创建一个.
            ModelAndView modelAndView = new ModelAndView();
    
            //这个方法相当于request的setAttribute()方法.
            modelAndView.addObject("key", "value");
    
            //指定视图
            //例如我们在/WEB-INF/jsp/test.jsp页面,所以我们的视图名称就要写成如下.
            modelAndView.setViewName("/WEB-INF/jsp/test.jsp");
            return modelAndView;
        }
    }
    

    上面就是我们自己的Handler了,下面这张图比较详细.


    配置处理器映射器

        <!-- 配置映射器 -->
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    

    处理器映射器作用就是通过URL找到对应的Handler.
    而这里配置的bean大家通过名字也能看出来,是将bean的name作为url进行查找.
    所以我们还需要配置Handler

    配置Handler

    <bean class="cc.test.TestController" name="/test/testController.do"/>
    

    这样当我们请求/test/testController.do的时候就会找到对应的cc.test.TestControllerHandler了.

    配置视图解析器

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
    

    相关文章

      网友评论

          本文标题:Spring7-编写第一个Handler(非注解)

          本文链接:https://www.haomeiwen.com/subject/bkxytxtx.html