一、非注解的处理器映射器、适配器的配置
1、非注解的处理器映射器配置
上一篇文章中讲解了一个处理器映射器
org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping
本文再讲一个
org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
SpringMVC.xml文件配置如下
【提示】上图的itemController1是处理对应url请求的bean的id。多个映射器可以并存,前端控制器判断url能让哪些映射器映射,就让正确的映射器处理。
2、非注解的处理器适配器
上一篇文章中讲解了一种
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
要求编写的Handler实现 Controller接口
本文再讲一个
org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
要求编写的Handler实现 HttpRequestHandler接口
【提示】把写好的Handler类配置在springMVC.xml中。然后按照映射器的规则进行配置。流程的部分可以参照上一篇文章
提示
如果不做上述映射器、适配器配置的话也是可以的
前端控制器从上边的文件中加载处理映射器、适配器、视图解析器等组件,如果不在springmvc.xml中配置,使用默认加载的。
二、基于注解的处理器映射器、适配器的配置
在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping注解映射器。
在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping注解映射器。
在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter注解适配器。
在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter注解适配器。
1. 配置注解映射器、适配器
2. 开发注解的Handler
使用注解的映射器和注解的适配器。(注解的映射器和注解的适配器必须配对使用)
//使用Controller标识 它是一个控制器
@Controller
public class ItemsController3 {
//商品查询列表
//@RequestMapping实现 对queryItems方法和url进行映射,一个方法对应一个url
//一般建议将url和方法写成一样
@RequestMapping("/queryItems")
public ModelAndView queryItems()throws Exception{
//调用service查找 数据库,查询商品列表,这里使用静态数据模拟
List<Items> itemsList = new ArrayList<Items>();
//向list中填充静态数据
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("/WEB-INF/jsp/items/itemsList.jsp");
return modelAndView;
}
在springMVC.xml文件中配置
【提示】不需要配置id
实际开发中建议使用组件扫描
<context:component-scan base-package="cn.itcast.ssm.controller"></context:component-scan>
当然是用了组件扫描之后就不需要是用上面的单个配置了。
3. 部署测试
访问:http://localhost:8080/项目名/queryItems.action