问题描述
使用若依框架(版本不详,但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()方法。源码如下:
红框中的东西好眼熟:与pagehelper.reasonable好像,但PageDomain是啥?TableSupport.buildPageRequest()又干了啥?
:
说明:com.ruoyi.common.core.text.Convert是个类型转换工具类
getRequestAttributes().getRequest()方法是干嘛的?
看方法名就知道了,获取请求参数!