前端参数
const queryParams = reactive({
批号: null,
pageNum: 1,
pageSize: 10
})
前端接口
export function getLlist(params) {
return request({
url: '/bianmu/cataloging/literature/' ,
method: 'Post',
data: params,
})
}
后端控制器
public TableDataInfo getList(@RequestBody Map<String, Object> params) {
//startPage();Service 类上的 @Transactional 注解导致 PageHelper 分页拦截器失效。
在事务环境下,PageHelper 的 ThreadLocal 变量可能会被事务管理器清理或干扰,导致分页参数丢失。
// 手动获取分页参数
Integer pageNum = params.get("pageNum") != null ? Integer.parseInt(params.get("pageNum").toString()) : 1;
Integer pageSize = params.get("pageSize") != null ? Integer.parseInt(params.get("pageSize").toString()) : 10;
Integer 批号 = params.get("批号") != null ? Integer.parseInt(params.get("批号").toString()) : 0;
// 查询所有数据
List<Map<String, Object>> allList = catalogingService.getLiteratureByPiHao(批号);
// 手动分页
int total = allList.size();
int startIndex = (pageNum - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize, total);
List<Map<String, Object>> pageList = new ArrayList<>();
if (startIndex < total) {
pageList = allList.subList(startIndex, endIndex);
}
// 构建返回结果
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setRows(pageList);
rspData.setTotal(total);
return rspData;
}
若依框架分页流程
前端 queryParams 对象
↓
URL: /List?批号=2026009&pageNum=1&pageSize=10
↓
后端 Spring MVC 自动将 URL 参数绑定到 对象
↓
startPage() 自动从 URL 参数中读取 pageNum=1, pageSize=10
↓
PageHelper 拦截下一个 SQL 查询,添加分页
↓
返回分页结果 { rows: [...], total: 17 }