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

9.SpringBoot Web请求参数绑定方法

请求路径

// 请求参数绑定
@GetMapping("/users/{id}")  
public User getUser(@PathVariable Long id) {// ... }
// @PathVariable 带名称 - 当方法参数名与路径变量名不一致时
@GetMapping("/users/{userId}")
public User getUser(@PathVariable("userId") Long id) {// ...
}
// 多参数
@GetMapping("/users/{userId}/orders/{orderId}")
public Order getOrder(@PathVariable Long userId, @PathVariable Long orderId) {// ...
}
// Map接收所有参数
@GetMapping("/users/{userId}/orders/{orderId}")
public Order getOrder(@PathVariable Map<String, String> pathVars) {// ...
}

请求参数

// 请求参数接收
@GetMapping("/users")
public List<User> getUsers(@RequestParam int page, @RequestParam int size) {// ...
}
//带有默认值
@GetMapping("/users")
public List<User> getUsers(@RequestParam(defaultValue = "1") int page,@RequestParam(defaultValue = "10") int size) {// ...
}
//可选参数
@GetMapping("/users")
public List<User> getUsers(@RequestParam(required = false) String name) {// ...
}
// Map接收全部参数
@GetMapping("/users")
public List<User> getUsers(@RequestParam Map<String, String> params) {// ...
}
@GetMapping("/users")
//对象绑定
public List<User> getUsers(UserQuery query) {// query 对象会自动从请求参数绑定
}

请求体

@PostMapping("/users")
public User createUser(@RequestBody User user) {// ...
}

请求头

// 某个头参数
@GetMapping("/users")
public List<User> getUsers(@RequestHeader("Authorization") String auth) {// ...
}
//全部头参数
@GetMapping("/users")
public List<User> getUsers(@RequestHeader Map<String, String> headers) {// ...
}
//对象绑定头参数
@GetMapping("/users")
public List<User> getUsers(@RequestHeader HttpHeaders headers) {// ...
}

其他,spring 自动识别并注入

@GetMapping("/example")
public String example(HttpServletRequest request,HttpServletResponse response,HttpSession session,Principal principal,Locale locale,InputStream inputStream,Reader reader,OutputStream outputStream,Writer writer) {// ...
}
http://www.dtcms.com/a/301323.html

相关文章:

  • 盛最多水的容器-leetcode
  • 《Java 程序设计》第 7 章 - 继承与多态
  • 记录几个SystemVerilog的语法——时钟块和进程通信
  • maven聚合工程(多个mudule只编译、打包指定module)
  • JVM类加载机制全流程详解
  • 通过硬编码函数地址并转换为函数指针来调用函数
  • Java#包管理器来时的路
  • Leetcode-3427变长子数组求和
  • Mitk教程案例项目编译
  • 嵌入式——单片机的独立按键
  • 【3DsMax+Zbrush+SP】风格化低多边形模型制作教程——以制作杯子为例——03在Substance Painter中制作材质
  • PyTorch深度学习入门记录3
  • 两数之和 II - 输入有序数组-leetcode
  • 【深度学习系列82】joyagent上手体验
  • 五、搭建springCloudAlibaba2021.1版本分布式微服务-gateway网关
  • 基于大模型的预训练、量化、微调等完整流程解析
  • 【思维链(CoT)技术深度解析】从理论到实践的革命性推理方法
  • pytest中的参数化
  • Python-初学openCV——图像预处理(三)
  • 相对路径遍历(CWE-22)
  • 【杂谈】-被引用即被看见:生成式AI如何改写内容规则
  • vscode找不到python解释器的解决方案
  • 8. 若依框架的AjaxResult
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现PCB上二维码检测识别(C#代码UI界面版)
  • 欢乐的周末 - 华为OD统一考试(JavaScript 题解)
  • RAG(检索增强生成)
  • Vue 四个map的使用方法
  • MySQL读写分离部署
  • 【YOLO系列】YOLOv1详解:模型结构、损失函数、训练方法及代码实现
  • 前端面试专栏-前沿技术:31.Serverless与云原生开发