当前位置: 首页 > ds >正文

Spring MVC 请求映射处理:@RequestMapping 与 @Pathvariable

文章目录

      • @RequestMapping 常用属性
      • @RequestMapping 使用案例
      • @RequestMapping 搭配 ANT 风格使用
      • @RequestMapping 衍生注解
      • @RequestMapping 搭配 @PathVariable 使用

@RequestMapping 注解是 Spring MVC 框架中一个用来映射请求到方法的注解,可用于类级别和方法级别。在类级别上, @RequestMapping 注解用于指定该控制器类处理的根路径或公共路径前缀。在方法级别上, @RequestMapping 注解用于指定具体的请求路径。可以将 @RequestMapping 注解与其他请求元数据一起使用,例如请求方法,请求类型、请求参数等,以更精确地映射请求。

@RequestMapping 常用属性

以下是 @RequestMapping 注解的常用属性:

属性作用说明
value映射请求当值有多个时,请求中匹配其一即可
method指定请求方式当值有多个时,请求中匹配其一即可
params指定请求参数当值有多个时,必须匹配所有值
headers指定请求头当值有多个时,必须匹配所有值

@RequestMapping 使用案例

以下是 @RequestMapping 注解的一些常见的使用案例:

案例说明
@RequestMapping(value={“/index1”,“/index2”})指定多个映射路径,映射路径包括 /index1 以及 /index2
@RequestMapping(value=“/index”, method={RequestMethod.POST,RequestMethod.GET})指定单个映射路径为 /index 及请求方式支持 POST 与 GET
@RequestMapping(value=“/”,params={“name”})请求参数中必须携带 name
@RequestMapping(value=“/”,params={“!name”})请求参数中不能携带 name 参数
@RequestMapping(value=“/”,params={“name=tom”})请求参数中必须携带 name 参数且 name 参数值只能为 tom
@RequestMapping(value=“/”,params={“name!=tom”})请求参数中必须携带 name 参数且 name 参数值不能为 tom
@RequestMapping(value=“/”,headers={“name”})请求头中必须携带 name
@RequestMapping(value=“/”,headers={“!name”})请求头中不能携带 name
@RequestMapping(value=“/”,headers={“name=tom”})请求头中必须携带 name 且 name 参数值为 tom
@RequestMapping(value=“/”,headers={“name!=tom”})携带 name 参数,并且 name 参数值不为 tom

@RequestMapping 搭配 ANT 风格使用

@RequestMapping 注解可以使用 ANT 风格的路径模式进行匹配。ANT 风格的路径模式支持使用 ?*** 进行通配符匹配:

符号描述
?匹配任意单个字符或不匹配任何字符
*匹配任意多个字符(不包括路径分隔符 /
**匹配任意路径,可以跨多层目录

以下是常见的 ANT 风格路径案例:

注解描述
@RequestMapping(“/test”)匹配 /test
@RequestMapping(“/te?t”)匹配 /tet、/test
@RequestMapping(“/te*”)匹配 /te 以及以 /te 开头的任意路径
@RequestMapping(“/te/**/t”)匹配 /te/t、/te/foo/t、/te/foo/bar/t 等

@RequestMapping 衍生注解

Spring MVC 中还有四个注解,可以称之为 @RequestMapping 注解的衍生注解:

注解说明
@GetMapping限制只能为 GET 请求
@PostMapping限制只能为 POST 请求
@PutMapping限制只能为 PUT 请求
@DeleteMapping限制只能为 DELETE 请求

上述四个衍生注解的作用与 @RequestMapping 相同,只不过各个衍生注解对请求方式进行了限制。

@RequestMapping 搭配 @PathVariable 使用

其中,@PathVariable 注解用于从 URI 中提取数据作为方法参数。它允许在 URI 模板中定义的占位符(例如 {id})与方法参数绑定,以便在处理请求时获取 URI 中的特定部分。

例如:

package test;import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/test")
public class TestController {@GetMapping("/{id}")public ResponseEntity<String> getUserById(@PathVariable Long id) {return ResponseEntity.ok().body("id的值为:" + id);}}

上例中,@GetMapping("/{id}") 注解定义了一个 GET 请求处理方法,并使用了 {id} 占位符来表示 ID。然后,通过 @PathVariable Long id 将 URI 中的 {id} 绑定到方法参数 id 上,这样在方法内部就可以使用 id

启动一个 SpringBoot 项目,通过浏览器访问该路径,得到的结果为:

在这里插入图片描述

当请求发送到 /test/1 时,Spring MVC 将自动将 1 提取出来,以便在方法内部使用。

http://www.xdnf.cn/news/2575.html

相关文章:

  • H5实现一个二维码生成器页面
  • 华为OD机试真题——阿里巴巴找黄金宝箱Ⅰ(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • MySQL 存储引擎与服务体系深度解析
  • 登高架设作业指的是什么?有什么安全操作规程?
  • 基于QT(C++)实现数字图像处理—Canny边缘检测
  • 【WEB3】web3.0是什么
  • FreeMarker语法深度解析与Node.js集成实践指南
  • 衡石科技:HENGSHI SENSE 数据权限解决方案
  • Shadertoy着色器移植到Three.js经验总结
  • 【Linux系统】详解Linux权限
  • AI工作流自动化与智能应用开发平台
  • WEB服务器的部署及优化
  • 线上JVM调优与全栈性能优化 - Java架构师面试实战
  • DataStreamAPI实践原理——快速上手
  • 学习笔记—双指针算法—移动零
  • [原创](现代Delphi 12指南):[macOS 64bit App开发]: NSString类型与CFStringRef类型字符串相互转换.
  • 通过数据增强打造抗噪音多模态大模型
  • MySQL 大数据量分页查询优化指南
  • Git 撤回合并提交
  • WPF之XAML基础
  • AlexNet网络搭建
  • OneNet云平台
  • java16
  • Java快速上手之实验五
  • 若依脱敏功能升级:接口返回想脱就脱,想不脱就不脱(实现灵活可控制的数据脱敏)
  • 手撕——贪吃蛇小游戏(下)
  • 【quantity】1 创建 crates.io 账号并上传 Rust 库
  • 数据库查询艺术:从单表操作到多表联查的全面指南
  • Rollup、Webpack、Esbuild 和 Vite 前端打包工具
  • Redis01-基础-入门