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,不能拆分多个对象

相关推荐
码匠许师傅1 小时前
【C++ 面试真题】27. 聊聊 C++ 的内存泄漏与内存布局
java·c++·面试
PPPPickup2 小时前
金证秋招笔试
java·开发语言
不正经学生2 小时前
C语言结构体:自定义数据类型,让变量打包出行
java·c语言·开发语言·数据结构·算法
ycjunhua2 小时前
Spring AI 2.0 GA:ToolCallingAdvisor 重构与 Java Agent 新范式
java·人工智能·spring
开源必胜2 小时前
Future的异常处理以及CompletableFuture传播链、异常处理
java
林森lsjs3 小时前
队列 FIFO 原理 & 手撕两种队列实现(链表 + 循环数组)—数据结构陆
java·开发语言·数据结构·队列
lisin-lee-cooper4 小时前
简单聊聊 OpenFeign 框架源码
java·微服务
Buke..4 小时前
【APP 逆向】哔哩哔哩 sign 参数逆向(下):OLLVM 混淆还原 sign 算法
java·javascript·爬虫·python·算法
linux-hzh4 小时前
百日算法修炼 · Day 15
java·算法
半生过往5 小时前
前端学 Java 课程笔记
java·前端·笔记