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 小时前
容错重试与指数退避:网络抖动手抖不再丢数据(魔码量化实战 #04)
java·数据库·python·金融
梨涡泥窝1 小时前
JavaWeb——基于 Spring Boot + Vue 的图书管理系统的设计与实现
vue.js·spring boot·后端
2501_930472442 小时前
云安全自查清单:用腾讯云助手 30 分钟完成一次权限与密钥体检
java·腾讯云
letisgo52 小时前
JAVA 高级进阶05篇《Spring容器机制:Bean生命周期与三级缓存全解》
java·spring·面试·ioc·源码分析
岁月如歌77862 小时前
分布式锁完全指南:从数据库到 Redisson 的演进
java·后端·架构
AI深栈2 小时前
第 8 章 · Tool Calling 与 Tool Search
java·人工智能
写后端的胖头鱼2 小时前
【高频面试题】spring事物失效场景(带原理 + 代码示例)
java·后端·spring·事务·事物失效
小孩玩什么2 小时前
深入理解字符串匹配算法:BF算法,KMP算法
java·c语言·开发语言·数据结构·c++·算法
长谷深风1112 小时前
Agent执行系统中的身份与版本设计
java·大数据·人工智能·ai·大模型·task·aiagent
Wang's Blog2 小时前
Java框架快速入门: Spring Security+OAuth2之UserDetails与JDBC认证实践
java·网络·spring