配置处理器适配器
<!-- 处理器适配器 -->
<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"/>