若依分页问题及解决方法

前端参数

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 }

相关推荐
XS0301063 分钟前
JavaEE 核心知识
java·java-ee
JieE2125 分钟前
LeetCode 138 随机链表的复制|两种解法详解(哈希表 + 原地 O (1) 空间)
javascript·算法·面试
AZaLEan__8 分钟前
CSS文档流相关:BFC
前端·css
专注于ai算法的踩坑小达人18 分钟前
时序预测主流模型综述
算法·lstm
weixin_4467291619 分钟前
java实现发送邮件
java·开发语言
小林ixn22 分钟前
Vue3接入DeepSeek流式输出,把“二进制碎片”和“局部热更新”扒个精光
前端·vue.js·人工智能
2501_9127840826 分钟前
Taocarts 前端国际化实战:多语言与多币种怎么落地不翻车
前端·多语言·taocarts
QCoding29 分钟前
Java转AI第三课:Spring AI如何把100行HTTP代码缩减到10行?
java·人工智能
振宇i31 分钟前
Java集成openfeign远程RPC调用教程
java·rpc·openfeign
wear工程师33 分钟前
volatile 这题别只答「可见性」:面试官真正想听的是这条 happens-before
java·jvm