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

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.xdnf.cn/news/16327.html

相关文章:

  • RTSP|RTMP播放器 in Unity:开源不够用?从工程视角重新定义播放器选型
  • 【优选算法】BFS解决最短路问题(单源)
  • LeetCode 1577.数的平方等于两数乘积的方法数
  • Spring 解析 XML 配置文件的过程(从读取 XML 到生成 BeanDefinition)
  • HarmonyOS NEXT 系列之规范开发三方共享包
  • Java学习-------序列化与反序列化
  • MGRE综合实验
  • 【Linux | 网络】传输层(UDP和TCP)
  • 笔记本键盘的启用和禁用
  • Rust实战:高效开发技巧
  • 强连通分量:Kosaraju算法
  • 使用Python绘制动态樱花
  • CentOS 镜像源配置与 EOL 后的应对策略
  • 【C++篇】STL的关联容器:unordered_map和unordered_set(上篇):哈希表的模拟实现
  • Triton Shared编译
  • Linux网络-------2.应⽤层⾃定义协议与序列化
  • 大模型算法面试笔记——常用优化器SGD,Momentum,Adagrad,RMSProp,Adam
  • Spring MVC设计精粹:源码级架构解析与实践指南
  • AI Coding IDE 介绍:Cursor 的入门指南
  • 深度学习计算(深度学习-李沐-学习笔记)
  • Python 程序设计讲义(23):循环结构——循环控制语句 break 与 continue
  • 【笔记】Einstein关系式 D = ukBT 的推导与应用研究
  • 【自动化运维神器Ansible】Ansible常用模块之hostname模块详解
  • Java面试实战:企业级性能优化与JVM调优全解析
  • 【编号444】雅鲁藏布江(上中下)游8级水系湖泊数据合集
  • cacti漏洞CVE-2022-46169的复现
  • Java:采用mybatis+pagehealper优雅的实现分页功能
  • 如何筛选适合自己阅读的文献?高效文献调研流程?
  • 【C++高效编程】STL queue深度剖析:从底层原理到高级应用
  • FastAPI入门:安装、Pydantic、并发和并行