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