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

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

作者: 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