处理器映射器(HandlerMapping)及处理器适配器(HandlerAdapter)详解(二)
注解的 处理器映射器 和 处理器适配器 介绍
注解的映射器:
在 Spring3.1 之前使用 DefaultAnnotationHandlerMapping 注解映射器(根据 DispatcherServlet.properties 配置文件中的配置),
之后使用 RequestMappingHandlerMapping 注解映射器
注解的适配器:
在 Spring3.1 之前使用 AnnotationMethodHandlerAdapter 注解器适配器(根据 DispatcherServlet.properties 配置文件中的配置),
之后使用 RequestMappingHandlerAdapter 注解适配器
配置注解映射器和适配器
1、xml文件中配置
<!-- 注解的映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
<!-- 注解的适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" /> <!-- 使用mvc:annotation-driven 代替上面的注解映射器 和 适配器的配置 mvc:annotation-driven 还默认加载了很多参数绑定方法,比如json转换解析器就默认加载了
如果使用mvc:annotation-driven,不用配置RequestMappingHandlerMapping 和 RequestMappingHandlerAdapter
实际开发使用 mvc:annotation-driven -->
<!-- <mvc:annotation-driven></mvc:annotation-driven> -->
2、开发注解 Handler
必须使用 注解的映射器 和 注解的适配器
// 使用Controller注解来 标识它是一个控制器
@Controller
public class UserController3 { // 用户列表查询
// @RequestMapping 实现对queryUsers()方法 和 URL 进行映射,一个方法对应一个URL
// 一般建议将 URL 和 方法 写成一样
@RequestMapping("/queryUsers")
public ModelAndView queryUsers() throws Exception{
ArrayList<User> userlist = new ArrayList<User>();
User user1 = new User("腾博","123456");
User user2 = new User("小兵","123456");
System.out.println("我来了");
userlist.add(user1);
userlist.add(user2); // 返回ModelAndView
ModelAndView modelAndView = new ModelAndView();
// 相当于request的setAttribute,在jsp页面中通过userlist取数据
modelAndView.addObject("userlist", userlist); // 指定视图
modelAndView.setViewName("/WEB-INF/jsp/users/user.jsp"); return modelAndView;
} // 定义其他的方法
// 用户的添加
// 用户的修改
}
Handler 的 xml 文件配置
<!-- 对于注解的 Handler 可以单个配置
实际开发中建议使用组件扫描
-->
<!-- <bean class="com.bjxb.ssm.controller.UserController3"/> --> <!-- 组件扫描可以扫描Controller、Service.....
这里让扫描Controller、指定Controller的包
-->
<context:component-scan base-package="com.bjxb.ssm.controller" />
处理器映射器(HandlerMapping)及处理器适配器(HandlerAdapter)详解(二)的更多相关文章
- springmvc 源码分析(三) -- 自定义处理器映射器和自定义处理器适配器,以及自定义参数解析器 和错误跳转自定页面
测试环境搭建: 本次搭建是基于springboot来实现的,代码在码云的链接:https://gitee.com/yangxioahui/thymeleaf.git DispatcherServlet ...
- SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)
SpringMVC简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 Spring结构图 Spr ...
- SpringMVC由浅入深day01_3非注解的处理器映射器和适配器
3 非注解的处理器映射器和适配器 3.1 非注解的处理器映射器 3.1.1 HandlerMapping处理器映射器 HandlerMapping 负责根据request请求找到对应的Handler ...
- 02_springmvc处理器映射器和适配器(补充)
一.非注解的处理器映射器 HandlerMapping 负责根据request请求找到对应的Handler处理器及Interceptor拦截器,将它们封装在HandlerExecutionChain ...
- SpringMVC处理器映射器和方法名称解析器
所谓配置式开发是指,“处理器类是程序员手工定义的,实现了特定接口的类,然后再在SpringMVC配置文件中对该类进行显式的,明确的注册”的开发方式” 1.处理器映射器HandlerMapping Ha ...
- 4.SpringMVC 配置式开发-处理器映射器
处理器映射器 HandlerMapping HandlerMapping 接口负责根据request请求找到对应的Handler处理器及Interceptor拦截器, 并将它们封装在HandlerEx ...
- SpringMVC源码剖析2——处理器映射器
1.处理器映射器 HandlerMapping 一句话概括作用: 为 我 们 建 立 起 @RequestMapping 注 解 和 控 制 器 方 法 的 对 应 关 系 . 怎么去查看 第一步: ...
- springmvc03 非注解和注解处理器映射器和适配器
1其它非注解处理器映射器和适配器 .1BeanNameUrlHandlerMapping(映射器) 根据请求url(XXXX.action)匹配spring容器bean的 name 找到对应的bean ...
- spring_配置处理器对象、处理器映射器、处理器适配器、视图解析器
创建spring配置文件:application-context.xml. 创建处理器类 package com.lanou.demo.controller;public class BookCont ...
随机推荐
- 泛型种树(generic) 代码
再这个案例中我们,为什么要使用泛型约束 使用约束的原因 约束指定类型参数的功能和预期. 声明这些约束意味着你可以使用约束类型的操作和方法调用. 如果泛型类或 方法对泛型成员使用除简单赋值之外的任何操作 ...
- Oracle之关系型数据库
什么是关系型数据库? (1)关系型数据库是依据关系模型来创建的数据库. (2)所谓关系模型就是"一对一.一对多.多对多"等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库 ...
- Python 爬取 "王者荣耀.英雄壁纸" 过程中的矛和盾
1. 前言 学习爬虫,最好的方式就是自己编写爬虫程序. 爬取目标网站上的数据,理论上讲是简单的,无非就是分析页面中的资源链接.然后下载.最后保存. 但是在实施过程却会遇到一些阻碍. 很多网站为了阻止爬 ...
- C# 反编译工具之ILSpy
下载地址:http://ilspy.net/ 中文版下载地址:http://www.fishlee.net/soft/ilspy_chs 对dll和exe文件反编译:
- 矩池云上使用nvidia-smi命令教程
简介 nvidia-smi全称是NVIDIA System Management Interface ,它是一个基于NVIDIA Management Library(NVML)构建的命令行实用工具, ...
- mybatis介绍--基于个人学习JavaWeb的使用
mybatis介绍 该博文放在javaWeb系列下,目的是记录我们javaWeb阶段所学的知识 @time=2022/3/11/11:52(最近休息玩了两天,今天重新启动生活) 一.mybatis发展 ...
- min_25 筛学习小记
min_25筛 由 dalao min_25 发明的筛子,据说时间复杂度是极其优秀的 \(O(\frac {n^{\frac 3 4}} {\log n})\),常数还小. 1. 质数 \(k\) 次 ...
- MYSQL如何在创建表时添加判断条件
大家好,我是小皓. 一.背景 今天在博主练习MYS创建表操作时遇到一个语法报错,就想着来和大家分享一下MYSQL如何在创建表时添加判断条件: ERROR 1064 (42000): You have ...
- python关于openpyxl库的常用使用介绍
from openpyxl import load_workbook #只能加载已存在的表格 wb=load_workbook("D:\zhijing_work\测试数据\测试文件\yeta ...
- IIS 虚拟目录 VS 站点
1.虚拟目录是站点的一个子目录,虚拟目录是建立在站点下面的. 2.一个站点下面,可以建立多个虚拟目录.各个虚拟目录都是以虚拟目录名称来进行区分. 3.新建的独立站点就和IIS中的默认站点一样,各个站点 ...