美文网首页
若依框架中,分页参数超过最大页任然返回最后一页的问题

若依框架中,分页参数超过最大页任然返回最后一页的问题

作者: Iam品种 | 来源:发表于2022-11-21 17:21 被阅读0次

问题描述

使用若依框架(版本不详,但gitee最新版代码使用逻辑是一致的)自带的分页功能时出现了查询超过最大页后任然返回了数据的问题:

总条数13条,每页10条,查询第一、二页数据正常,但是当查询大于第二页的数据时,任然返回了数据,并且此时的数据是第二页的数据

网上找了一下解决办法,基本上都是说配置pagehelper.reasonable=false解决,但尝试了,无效。
既然不是配置的问题,只能是框架源码的问题了。
正常使用若依自带的分页是这样的:

public TableDataInfo meth(Object param) {
  startPage();
  List<Object> list = service.selectList(param);
  return getDataTable(list);
}

首先考虑是getDataTable方法搞的鬼,但是断点发下,触发分页处理是在service.selectList的时候,那唯一可能就是startPage()的地方,它调用的其实是BaseController中的方法,最终调用的是com.ruoyi.common.utils.PageUtils.startPage()方法。源码如下:

com.ruoyi.common.utils.PageUtils源码
红框中的东西好眼熟:与pagehelper.reasonable好像,但PageDomain是啥?TableSupport.buildPageRequest()又干了啥?
com.ruoyi.common.core.page.TableSupport.buildPageRequest()源码
ServletUtils.getParameterToBool(REASONABLE)源码
说明:com.ruoyi.common.core.text.Convert是个类型转换工具类
getRequest()方法源码
getRequestAttributes().getRequest()方法是干嘛的?
看方法名就知道了,获取请求参数!

所以,

解决以上问题的办法就是:分页参数除了pageNum、pageSize,在加一个reasonable,值为false即可。

相关文章

网友评论

      本文标题:若依框架中,分页参数超过最大页任然返回最后一页的问题

      本文链接:https://www.haomeiwen.com/subject/spdnxdtx.html