【SpringMVC3.X 总结】3. 处理器映射器、适配器

本文详细介绍了SpringMVC中处理器映射器与适配器的配置方式,包括非注解与基于注解的方法。非注解配置涉及BeanNameUrlHandlerMapping与SimpleUrlHandlerMapping,以及SimpleControllerHandlerAdapter与HttpRequestHandlerAdapter的使用。基于注解的配置则关注RequestMappingHandlerMapping与RequestMappingHandlerAdapter。文章还提供了示例代码与测试步骤。

一、非注解的处理器映射器、适配器的配置

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值