若依框架---分页功能

简介: 若依框架---分页功能

继前几天我们学习若依管理系统中的代码生成工具,我们发现若依系统中还要很多值得学习的地方。今天我们来学习若依管理系统中的分页工具。


若依管理系统是前后端分离的(准确的说,若依有前后端分离版本)。


前端


若依前端的分页没有什么好说的,请求时分为pageNum与pageSize,使用前端分页组件Pagination(这个组件我们之前在花裤衩的vue-element-admin中也遇到过),代码如下所示:

<!-- 分页组件-->
<pagination
  :total="total"
  :page.sync="queryParams.pageNum"
  :limit.sync="queryParams.pageSize"
  @pagination="fetchData"
/>
query: {
  keyword: undefined,
  // otherquery.....
  pageNum: 1,
  pageSize: 10
},
result: { // 请求结果
    total: 0,
    rows: []
}
// 后台方法,传入参数 获取结果
api(this.queryParams).then(response => {
    this.result = response;
  }
);


后端分页


后端的分页很有意思,我们先来看看后端接口中的分页代码。


我们抓取若依前端:系统管理->日志管理->操作日志接口,经过浏览器F12调试,我们可以发现其接口地址为:

/monitor/operlog/list?pageNum=1&pageSize=10


我们在后台查找对应接口发现其位于com.ruoyi.web.controller.monitor.SysOperlogController下的list方法。方法代码如下所示:

    @PreAuthorize("@ss.hasPermi('monitor:operlog:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysOperLog operLog)
    {
        startPage();
        List<SysOperLog> list = operLogService.selectOperLogList(operLog);
        return getDataTable(list);
    }


奇怪的是,我们并没有发现分页参数的获取与解析,那么后端到底是如何实现分页的呢?


这个接口有三个特点,


一是返回值类型为TableDataInfo

二是接口第一行代码startPage()

三是接口最后一句:getDataTable(list)。


首先,我们先来看看 TableDataInfo 的数据结构。

/**
 * 表格分页数据对象
 * 
 * @author ruoyi
 */
public class TableDataInfo implements Serializable
{
    private static final long serialVersionUID = 1L;
    /** 总记录数 */
    private long total;
    /** 列表数据 */
    private List<?> rows;
    /** 消息状态码 */
    private int code;
    /** 消息内容 */
    private String msg;
    // 剩余的构造器与setter,getter方法不贴了
}


我们可以看到,数据的类型与前端是匹配的,那么这个数据又是如何在接口中构造的呢?

关键代码 startPage() 时发生了什么?接口最后一句 genDataTable(list) 又是如何将一个list转换为 TableDataInfo 的呢?

目录
相关文章
|
SQL Java 关系型数据库
若依框架---PageHelper分页(十一)
若依框架---PageHelper分页(十一)
711 0
|
SQL Java 数据库连接
若依框架---PageHelper分页(四)
若依框架---PageHelper分页(四)
497 0
|
SQL Oracle 关系型数据库
若依框架---PageHelper分页(七)
若依框架---PageHelper分页(七)
509 0
|
SQL 数据库
若依框架---PageHelper分页(六)
若依框架---PageHelper分页(六)
568 0
|
移动开发 前端开发 JavaScript
一些框架获取当前登录用户以及用户信息整理
无论是哪一个框架,获取当前登录用户信息是必不可少的,做一些功能的时候我们肯定得用到当前登陆者信息,所以我就查找了一下几个框架是如何获取当前用户信息,例如在若依框架中,用 this.$store.state.user就可以获取到。当获得的信息是极少时,不足够我们做其他功能时,当然你也可以自己在这个获取的基础上面增加所需信息即可。
一些框架获取当前登录用户以及用户信息整理
|
SQL Oracle 关系型数据库
若依框架---PageHelper分页(五)
若依框架---PageHelper分页(五)
639 0
|
SQL Java 数据库连接
若依框架---PageHelper分页(三)
若依框架---PageHelper分页(三)
692 0
|
SQL JSON 前端开发
若依RuoYi脚手架二次开发教程(二次开发必学技能)
本次我们将通过一个菜品管理模块开发的案例,来演示拿到若依框架后,如何在若依管理系统上进行二次开发,升级改造为自己的管理系统。适合以若依作为项目脚手架的公司开发人员、毕业设计的学生及开源项目学习者。
11003 1
若依RuoYi脚手架二次开发教程(二次开发必学技能)
若依修改,切换首页,改成自己想要跳转的login页
若依修改,切换首页,改成自己想要跳转的login页
|
前端开发
若依修改,配置了一个接口路径出现了,如何放通接口{ “msg“: “请求访问:/code/list,认证失败,无法访问系统资源“, “code“: 401}
若依修改,配置了一个接口路径出现了,如何放通接口{ “msg“: “请求访问:/code/list,认证失败,无法访问系统资源“, “code“: 401}

热门文章

最新文章