【SSM-SpringMVC框架】注解的处理器适配器和映射器
1.Controller代码:
- @Controller
- public class ItemList3 {
- @RequestMapping("/queryItems.action")
- public ModelAndView queryItems() throws Exception{
- //商品列表
- List<Items> itemsList = new ArrayList<Items>();
- Items items_1 = new Items();
- items_1.setName("联想笔记本");
- items_1.setPrice(6000f);
- items_1.setDetail("ThinkPad T430 联想笔记本电脑!");
- Items items_2 = new Items();
- items_2.setName("苹果手机");
- items_2.setPrice(5000f);
- items_2.setDetail("iphone6苹果手机!");
- itemsList.add(items_1);
- itemsList.add(items_2);
- //创建modelAndView准备填充数据、设置视图
- ModelAndView modelAndView = new ModelAndView();
- //填充数据,,相当于request.setAttribut(); 在jsp页面中通过itemsList取数据
- modelAndView.addObject("itemsList", itemsList);
- //视图
- modelAndView.setViewName("/itemsList.jsp");
- return modelAndView;
- }
- }
2.向spring容器中加载Handler:(组件扫描器)
使用组件扫描器省去了向spring容器中配置每个controller的繁琐。使用<context:component-scan>,自动扫描带有@controller标记的Handler控制器类。
- <!-- 扫描指定包的Handler,不用一个一个将Handler布置到spring容器中 -->
- <context:component-scan base-package="cn.edu.hpu.springmvc.controller"></context:component-scan>
3.注解的处理器映射器(HandlerMapping):
注解式处理器映射器对标有@RequestMapping的方法进行映射,根据RequestMapping定义的url,匹配RequestMapping标记的方法,若匹配成功,则HandlerMethod给前端控制器,HandlerMethod对象中封装url对应的方法Method。
- <!--注解映射器 -->
- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
4.注解的处理器适配器(HandlerAdapter):
注解式的处理器适配器,对标有@RequestMapping的方法进行适配。
- <!--注解适配器 -->
- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
5.<mvc:annotation-driven>
- <!-- 使用 mvc:annotation-driven代替上边注解映射器和注解适配器配置
- mvc:annotation-driven默认加载很多的参数绑定方法,
- 比如json转换解析器就默认加载了,如果使用mvc:annotation-driven不用配置上边的RequestMappingHandlerMapping和RequestMappingHandlerAdapter
- 实际开发时使用mvc:annotation-driven
- -->
- <mvc:annotation-driven></mvc:annotation-driven>