基于RuoYi若依vue的数据分页功能的前后端代码详解

news2025/1/25 9:02:47

目录

1.前端代码

1.1首先在前端会有一个 组件,为分页组件

1.2前端获取列表函数以及访问后端的URL与请求方式

1.3开发者工具查看前端访问后端信息

 1.4开发者工具查看前端接收到后端的回应信息

2.后端代码

2.1接口

2.2接口内方法的代码

2.3后端Log输出如下

 


1.前端代码

1.1首先在前端会有一个<pagination> 组件,为分页组件

 <pagination
      v-show="total>0"
      :total="total"//刚开始时total=0;需要后端将数据表中所有数据返回,进行统计而得
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"//前端点击下一页时,触发此函数
    />

1.2前端获取列表函数以及访问后端的URL与请求方式

getList() {
      this.loading = true;
      listStudent(this.queryParams).then(response => {
        this.studentList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
// 查询学生信息列表
export function listStudent(query) {
  return request({
    url: '/system/student/list',//后端接口URL
    method: 'get',//请求方式
    params: query
  })
}

1.3开发者工具查看前端访问后端信息

在打开相应的表后 按F12进行查看,然后刷新一下页面,便会出现我们想要的,在图中我们可以看到PageNum=1,PageSize=10,即当前页面是第一页,一页可以有十条数据

 1.4开发者工具查看前端接收到后端的回应信息

此时的total=11,这便是从后端传来的数据,说明我们学生表里面有11条记录,

 <pagination
      v-show="total>0"
      :total="total"//此时total=11
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"//前端点击下一页时,触发此函数
    />

2.后端代码

2.1接口

@RestController
@RequestMapping("/system/student")
public class MyStudentController extends BaseController
{
    @Autowired
    private IMyStudentService myStudentService;

    /**
     * 查询学生信息列表
     */
    @PreAuthorize("@ss.hasPermi('system:student:list')")
    @GetMapping("/list")
    public TableDataInfo list(MyStudent myStudent)
    {
        startPage();//分页需要先执行此函数
        List<MyStudent> list = myStudentService.selectMyStudentList(myStudent);
        return getDataTable(list);//返回的参数需要通过这个函数进行包装
    }

2.2接口内方法的代码

startPage()与getDataTable代码详解

    protected void startPage()
    {
        PageUtils.startPage();
    }//非在一个界面
    public static void startPage()
    {
        PageDomain pageDomain = TableSupport.buildPageRequest();
        Integer pageNum = pageDomain.getPageNum();
        Integer pageSize = pageDomain.getPageSize();//前端请求的两个参数
        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
        {
            String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
            Boolean reasonable = pageDomain.getReasonable();
            PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);//真正分页需要用到的函数
        }
    }
   protected TableDataInfo getDataTable(List<?> list)
    {
        TableDataInfo rspData = new TableDataInfo();//使用TableDataInfo这个类包装参数,返回前端
        rspData.setCode(HttpStatus.SUCCESS);
        rspData.setMsg("查询成功");
        rspData.setRows(list);//数据
        rspData.setTotal(new PageInfo(list).getTotal());//获取表数据的总行数
        return rspData;
    }

2.3后端Log输出如下

先count(0) 查询总数 再查询语句后加LIMIT

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/407797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IntersectionObserver API详解

过去&#xff0c;要检测一个元素是否可见或者两个元素是否相交并不容易&#xff0c;比如实现图片懒加载、内容无限滚动等功能时&#xff0c;都需要通过​getBoundingClientRect()​写大量的逻辑计算或者依靠scroll事件监听等性能很差方式来实现。 现在&#xff0c;依靠Interse…

Object.prototype.toString.call()的原理

今天在项目中看到了用Object.prototype.toString.call()这个方法封装的检测数据类型的工具。 但是浏览器搜索相关原理的好回答凤毛麟角&#xff0c;故而想记录一下&#xff0c;万一可以帮助到更多的新手呢&#xff1f;我的文章都是非常通俗易懂的&#xff0c;因为我写文章的时…

HTML页面知识点小总结(巨详细)

HTML基础知识点总结 文章目录HTML基础知识点总结一、 HTML页面主要的三大标签。二、 外部的CSS文件。三、外部的JavaScript文件。四、< body >标签中存放的内容。如果觉得写的不错的话点个赞支持鼓励一下吧&#xff0c;欢迎交流&#xff0c;谢谢啦~~~一、 HTML页面主要的…

前端知识点汇总

HTML介绍 HTML: Hyper Text Markup Language 超文本标记语言&#xff0c;用来做网页. 负责网页的框架结构布局.1993年 html 1.0 Tim Berners-Lee(蒂姆-博纳斯-李)&#xff0c;万维网之父1995年 html 2.0 IETF(互联网工程小组)1997年1月 html 3.2 W3C(万维网联盟)1997年12月 ht…

vue2:elementUI中Form 表单在特定情况下做动态rules添加删除

先看需求&#xff1a;&#xff08;不想看的直接拉到最后&#xff09; 【需求说明】 6、如状态为上架时&#xff0c;库存为必填&#xff0c;下架状态时&#xff0c;库存为可填&#xff0c;前面无星号 实现方法&#xff1a;使用this.$set()和this.$delete() 上代码&#xff1a;…

Vue2 + JSX使用总结

什么是JSX 摘自 React 官方&#xff1a; 它被称为 JSX&#xff0c;是一个 JavaScript 的语法扩展。我们建议在 React 中配合使用 JSX&#xff0c;JSX 可以很好地描述 UI 应该呈现出它应有交互的本质形式。JSX 可能会使人联想到模板语言&#xff0c;但它具有 JavaScript 的全部…

前端人必看的JS面试题汇总

面试是每一个前端人在求职过程中都需要面对的事情。在面试过程中&#xff0c;面试官没有办法通过实践操作去了解应聘者的技能水平&#xff0c;所以他们更多地会通过“八股文”的考察来判断你是否符合公司的招聘要求。所以作为一个前端人&#xff0c;在掌握好前端技能的同时&…

vue导出word

最近的项目中&#xff0c;需要把vue中的部分内容导出为word形式&#xff0c;之前没有做过这方面的&#xff0c;特记录&#xff0c;由于是初学&#xff0c;所以整理了此模板&#xff0c;注意&#xff1a;这是一个模板&#xff0c;并不是相关字段的解析&#xff0c;每个字段都是做…

ECharts柱状图关闭鼠标hover时的高亮样式

最近在做图表相关的需求&#xff0c;使用的是echarts来画图。 今天算是遇到一个比较坑的点了吧&#xff0c;就是两根柱状图重叠对比&#xff0c;设计图把某根柱状图的颜色设计得比较浅&#xff0c;因为echarts的柱状图本身hover到柱子上的时候&#xff0c;会有个高亮状态&…

JavaScript纯前端解析Excel文件

最近在开发时候遇到了这样的一个需求&#xff1a;需要在前端通过解析Excel将Excel中的值进行回传填入。我想在实际的开发过程中&#xff0c;肯定大家也会遇到这样的需求&#xff0c;在这介绍一个比较不错的JS工具库&#xff1a;js-xlsx&#xff0c;及该库的简单使用方法。 1、…

Three.js-设置环境纹理及加载hdr环境贴图

目录 1.hdr 2.环境纹理&#xff08;全景&#xff09; 3.CubeTextureLoader加载立方体环境纹理 4.RGBELoader环境纹理加载 1.hdr HDR全称High-Dynamic Range&#xff08;高动态光照渲染&#xff09;&#xff0c;通过HDR&#xff0c;显示器或相机可以很好的表现超出其亮度范围…

vue3 antd项目实战——Form表单的提交与校验【v-model双向绑定input输入框、form表单数据,动态校验规则】

vue3 ant design vue项目实战——Form表单【v-model双向绑定数据实现form表单数据的提交】上期文章回顾【UI界面渲染】场景复现&#xff08;源代码附在文章最后&#xff09;实现需求1.表单数据及其类型的定义2.表单及各部分数据的双向绑定3.表单提交功能4.校验输入内容不为空5.…

vue-数据绑定

目录 1 数据绑定 2 绑定方式 2.1 单向绑定 2.2 双向绑定 1 数据绑定 Vue中有两种数据绑定方式&#xff1a; 1 单向绑定(v-bind)&#xff1a;数据只能从data流向页面。 2 双向绑定&#xff08;v-modle&#xff09;&#xff1a;数据不仅能从data流向页面&#xff0c;还能从页…

VSCode开发:使用nvm切换node版本

为什么要切换node版本&#xff0c;是因为npm run dev(vant app&#xff09;时&#xff0c;报了Error [ERR_REQUIRE_ESM]&#xff1a;Must use import to load ES Module这样的错。我使用的node版本是12.16.3&#xff0c;切换到16.15.1就没有这个问题了。 1. 安装nvm前记得要删…

【node进阶】深度解析express框架---编写接口|解决跨域问题

✅ 作者简介&#xff1a;一名普通本科大三的学生&#xff0c;致力于提高前端开发能力 ✨ 个人主页&#xff1a;前端小白在前进的主页 &#x1f525; 系列专栏 &#xff1a; node.js学习专栏 ⭐️ 个人社区 : 个人交流社区 &#x1f340; 学习格言: ☀️ 打不倒你的会使你更强&a…

Vuex 学习

什么是vuex&#xff1a; 专门在Vue中实现集中式状态&#xff08;数据&#xff09;管理的一个Vue插件&#xff0c;对vue应用中多个组件的共享状态进行集中式的管理&#xff08;读/写&#xff09;&#xff0c;也是一种组件间通信的方式&#xff0c;且适用于任意组件间通信。 原理…

clone下来的vue项目出现“An unknown git error occurred”,vue全局挂载axios及配置全局请求和响应拦截,uni-app的全局请求和响应拦截,对请求方法的封装

文章目录前言一、如何解决clone下来的vue项目出现“An unknown git error occurred”&#xff1f;二、vue全局挂载axios并设置全局的请求和响应拦截1.先下载安装好axios&#xff0c;这个就不用多说了2&#xff0c;vue2中的全局挂载:3,在vue3中我们又应该怎么全局挂载axios呢&am…

vue中使用百度地图

vue中使用百度地图 之前写过一篇vue调用百度地图的文章&#xff0c;但是写得不是很清晰&#xff0c;所以重新整理一篇&#xff1b;申请百度地图ak 这个我在之前的那篇文章已经讲过&#xff0c;就不再细说&#xff0c;链接如下&#xff1a;vue调用百度地图 初始化地图 引入地图…

同一页面实现recycleView三种布局【recycleView + adapter】

文章目录&#x1f96d;&#x1f96d;简介&#x1f96d;&#x1f96d;效果图&#x1f96d;&#x1f96d;代码&#x1f34e;&#x1f34e;三个Adapter修饰器&#x1f34e;&#x1f34e;主界面函数 && FuritBean&#x1f34e;&#x1f34e;布局文件&#x1f96d;&#x1f…

js获取dom元素宽高

一&#xff0c;前言 1.对于css盒子模型&#xff0c;我们使用width和height等来定义dom元素的宽高&#xff0c;而有时我们需要在js中获取元素的宽高进行一些操作。 2.dom操作提供了相应的属性来实现这一点 二&#xff0c;clientWidth和clientHeight 1.clientWidth和clientHe…