get方式下,同一个请求参数集合,同时给多个 POJO 入参做属性填充

1、定义两个实体BusPlaceBo、PageQuery

java 复制代码
@Data
public class BusPlaceBo {
    @NotNull(message = "ID不能为空", groups = { EditGroup.class })
    private Long id;
    @NotBlank(message = "地点名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;
    private String address;
    private String remarks;
    private String createUser;
    private String updateUser;
}
java 复制代码
@Data
public class PageQuery implements Serializable {
    private Integer pageSize;
    private Integer pageNum;
    private String orderByColumn;
    private String isAsc;
}

2、定义controller

java 复制代码
	@GetMapping("/list")
    public Result<BusPlaceVo> list(BusPlaceBo bo, PageQuery pageQuery) {
        System.out.println(bo);
        System.out.println(pageQuery);
        return busPlaceService.queryPageList(bo);
    }

3、测试

打印结果

4、分析

GET 接口!@GetMapping("/list"),不是 @RequestBody 接收的 JSON ,前端是把 json 拆开变成 url 查询参数传递:

/business/place/list?pageNum=1&pageSize=10&name=急诊科11&address=1楼

SpringMVC 遍历所有请求参数:

  • pageNum → 找到 PageQuery.pageNum,赋值进去
  • pageSize → 找到 PageQuery.pageSize,赋值进去
  • name → 找到 BusPlaceBo.name,赋值进去
  • address → 找到 BusPlaceBo.address,赋值进去

同一个请求参数集合,会同时给多个 POJO 入参做属性填充,这个逻辑只适用于 GET,没有 @RequestBody

如果是@PostMapping + @RequestBody,只能有一个实体对象接收整个 json,不能拆分多个对象

相关推荐
沙漠之主9 小时前
C++编程教学设计资料:从入门到实战的完整课程方案
java·前端·c++
FPGA小徐9 小时前
PA1 基础设施(2)深度解析:NEMU 中 ITRACE、MTRACE、FTRACE、IRINGBUF、ETRACE、DIFFTEST 全解析
java·服务器·网络
YOLO数据集集合10 小时前
EvoAgent:面向PR研发治理的自进化Multi-Agent Harness系统
java·开发语言·目标检测·agent·自进化
知行EDI10 小时前
知行之桥 MaBang 端口使用指南——Create Order 订单创建篇
java·服务器·数据库
笑鸿的学习笔记10 小时前
C++笔记之大块顺序写
java·c++·笔记
打工仔折腾 AI10 小时前
从 Demo 到生产级 Agent:8 个关键设计机制与 Python 实现拆解
java·jvm·人工智能·后端·python·langchain·ai agent 实战
殷色玫瑰11 小时前
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
java·linux·c语言·c++
code_slave(码畜)12 小时前
微服务架构落地:基础服务 —— 报表服务(中篇:元数据、查询引擎、缓存与权限落地)
spring boot·spring cloud·缓存·微服务·架构
ZealSinger12 小时前
Boot4挂起函数丢traceId怎么修
spring boot·kotlin·协程·可观测性
青山木13 小时前
Hot 100 --- 编辑距离
java·数据结构·算法·leetcode·动态规划