处理器映射器(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 ...
随机推荐
- 思迈特软件Smartbi:机器学习高深难懂?本文深入浅出给你讲明白!
人工智能(Artificial Intelligence,缩写为AI)是对人的意识.思维过程进行模拟的一门新学科.如今,人工智能从虚无缥缈的科学幻想变成了现实.计算机科学家们在人工智能的技术核心--机 ...
- 【C# 线程】线程局部存储(TLS)理论部分 ThreadStatic|LocalDataStoreSlot|ThreadLocal<T>
线程本地存储(TLS:Thread Local Storage) 线程本地存储(Thread Local Storage),字面意思就是专属某个线程的存储空间.变量大体上分为全局变量和局部变量,一个进 ...
- 聊聊你对AQS的理解
场景引入 面试官上来就一句,谈谈你对AQS的理解,大家心里可能收到了1W点伤害,AQS是什么,可能连全称都不知道,所以下面让我们聊聊AQS. 以ReentrantLock来介绍一下AQS 在java中 ...
- Java课程设计---浏览学生(表格的使用)
1.创建显示表格的窗体 package com.student.view; import java.awt.EventQueue; import javax.swing.JFrame; import ...
- Html实现背景科技流星雨效果
<!doctype html><html><head><meta charset="utf-8" /><title>流星 ...
- net core or Linux
某用户执行net core sdk 版本不生效 sudo chmod +x /home/username/netcore3.1sdk/dotnet //某个用户执行新版本net core sdk
- 用WebDev.WebServer40.EXE调试VS代码
1.找到WebDev.WebServer40的录井,一般位于C:/Program Files (x86)/Common Files/Microsoft Shared/DevServer/10.0/We ...
- Web安全学习
项目地址(参考):https://websec.readthedocs.io/zh/latest/basic/history.html 本文只能充当目录简介,具体还要自己深入学习. 序章 Web技术演 ...
- 【python】pip安装库时出现Read timed out.解决办法
昨天第一次用python画圆,当时并没有安装numpy库(导入数据包)和matplotlib库(导入图形包),于是尝试用pip安装库 首先,我先更新了pip,如下图: 顺便附上成功截图: 然后安装nu ...
- 简单认识java enum枚举
什么是枚举 枚举是java5中新增的特性,他是一个特殊的数据类型,他的特殊性在于他既是一种类类型,又比类类型多了安全性,简洁性,便捷性.java枚举类型是功能十分强大齐全的类,功能比其他语言中的对等物 ...