当前位置: 首页 > 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.lryc.cn/news/601557.html

相关文章:

  • 设计模式(九)结构型:组合模式详解
  • 设计模式(四)创建型:生成器模式详解
  • 第四科学范式(数据密集型科学):科学发现的新范式
  • NLP学习开始01-线性回归
  • 多租户Kubernetes集群架构设计实践——隔离、安全与弹性扩缩容
  • Vue基础(25)_组件与Vue的内置关系(原型链)
  • 马尔可夫链
  • MYSQL-- 行锁在索引命中与覆盖情况下的加锁行为
  • 随机密码生成
  • RTSP|RTMP播放器 in Unity:开源不够用?从工程视角重新定义播放器选型
  • Tkinter美化 - 告别土味Python GUI
  • 设计模式(二)创建型:工厂方法模式详解
  • 哈希表应用(map,set共同作用)
  • ubuntu18.04解压大的tar.gz文件失败
  • MySQL 全详解:从入门到精通的实战指南
  • vulhub-red靶机攻略
  • 优化Linux高并发:文件描述符与端口范围的协同调优
  • 【橘子分布式】gRPC(番外篇-客户端重试机制)
  • Python爬虫实战:研究tldextract库相关技术构建新闻网站域名分析爬虫系统
  • Java学习-------桥接模式
  • 3D芯片香港集成:技术突破与产业机遇全景分析
  • Python操作Excel文件完整指南
  • 依赖倒置原则 Dependency Inversion Principle - DIP
  • 2025 环法对决,VELO Angel Glide 坐垫轻装上阵
  • python优秀案例:基于python flask实现的小说文本数据分析与挖掘系统,包括K-means聚类算法和LDA主题分析
  • HBuilder X打包发布微信小程序
  • rust-包和箱子
  • 主要分布于内侧内嗅皮层的层Ⅲ的边界向量细胞(BVCs)对NLP中的深层语义分析的积极影响和启示
  • day062-监控告警方式与Grafana优雅展示
  • 【Oracle】套接字异常(SocketException)背后隐藏的Oracle问题:ORA-03137深度排查与解决之道