若依分页问题及解决方法

前端参数

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 }

相关推荐
凤山老林20 分钟前
Spring Boot 3.x AOT 编译实战:从原理、踩坑到生产落地
java·spring boot·后端
博傅32 分钟前
Spring 核心原理
java·后端·spring
yurenpai(27届找实习中)36 分钟前
从零读懂 AI 智能客服(一):模块职责与 SSE 聊天链路(后端架构)
java·人工智能·架构·langchain4j
M78佐菲40 分钟前
c语言学习笔记:排序与查找方法整理
linux·c语言·笔记·学习·算法
陈皮波比茶1 小时前
Swagger
java
小闫BI设源码1 小时前
Elasticsearch面试必看:如何让客户端精准选择节点高效执行请求?
java·elasticsearch·面试宝典·深入解析
摇滚侠2 小时前
《SpringBoot 3:入门与应用实战》第 5 章 使用 Spring Boot 阅读笔记 9
java·spring boot·笔记
进阶的小名2 小时前
Spring AI 2.0 探索:多 OpenAI-Compatible 模型接入,以及下一代 Session 记忆管理
java·人工智能·后端·gpt·spring·ai·chatgpt