bootstrap table 服务端分页与客户端分页案例解析

bootStrap后端分页查询(bootstrapTable)示例一 介绍:项目整体使用ssm实现,此次介绍一下bootStrap中后端分页的使用场景。如有不做之处欢迎指正!1.分页效果展示2.使用分页参数组装方式使用传递pageSize与pageNumber方式进行分页查询2.1 页面引用<!-- 1.引入 css样式--> <link rel="stylesheet" href="<%=request.getContextPath()%&... 阅读详情

bootstrap table 的分页功能可以分为客户端分页(client)和服务端(server)分页两种类型。其中客户端分页会一次性将所有页面的数据加载到前端页面,然后在前端执行数据的分页以及填充。而服务端分页则是根据请求参数中的页码以及每页数据条数分页请求数据,每次只会向数据库请求一页数据。

由于客户端分页会一次性将所有的数据查询回来,因此它只适用于数据量较少的情况,当数据量较大时,一次性查询大量数据耗费大量时间,有时会造成系统崩溃,此时应当使用服务端分页查询数据,这样可以减少数据查询时间,快速响应前端的数据请求。

1、客户端分页

bootstrapTable 在初始化的时候 sidePagination 默认就是使用客户端分页,即默认设置 sidePagination 属性的值为 client。

下面使用一个简单案例:查询小于20岁的用户并展示在表格上 对客户端分页进行说明

(1)html 代码

//封装查询
<div id="toolbar" class="form-inline">  
	 <input type="number" class="form-control" id="search_age">  
	 <button type="button" class="btn btn-primary" id="btnQuery">  
		 <i class="glyphicon glyphicon-search"></i>&nbsp;按年龄查询  
	  </button>   
 </div>  

//表格
<table id="table" class="table table-bordered" data-show-refresh="true"  
  data-show-columns="true">  
 </table>  

(2) js 请求代码
点击 html 中的查询按钮就会触发下面的代码,查询代码此处省略。

$('#table').bootstrapTable({  
	method:'get',
	url:"/user/getUserByAge",//请求路径
    pageNumber: 1,//初始化加载第一页  
    striped: true, //是否显示行间隔色 
    showRefresh: true,//显示刷新按钮  
    pagination:true, //是否分页  
    pageSize:5, //初始化单页记录数  
    pagination: true, //是否分页 
    pageList: [5, 10, 20, 30, 50],  
    search: true, //显示查询框 
    sidePagination: "client", //使用客户端分页 
    //下面是封装的请求参数 
    queryParams:function(params){
		var temp = {
			//请求参数
			age : $('search_age').val() 
		};
		return temp;	
	},
	//将返回的数据封装到表格
	columns:[
		{
			checkbox: true , width: '3%', visible: true //开启复选框
		},
		{  
			field: 'id', title: 'id'  
		},
		{  
			field: 'name', title: '姓名'
		},
		{  
			field: 'age', title: '年龄'
		},
	],
    onLoadSuccess: function (json) { //加载成功时执行  
	    console.log("load success");  
    },  
    onLoadError: function () { //加载失败时执行  
	    console.log("load fail");  
    }  
});

(3)封装数据的User对象

@Data
@NoArgsConstructor  
@AllArgsConstructor
public class User{
	private Integer id;
	private String name;
	private Integer age;
}

(4)Controller 层代码

注意,此处类的访问路径是 /user,这里使用 mybatis generator 生成相应的数据库访问工具类(UserExample,UserMapper)。另外,由于此处的逻辑比较简单,就不多写一层 service。

@RequestMapping("/getUserByAge")
@ResponseBody
public List<User> getUserByAge(User user , HttpServletRequest request){
	UserExample example = new UserExample();
	UserExample.Criteria criteria = example.createCriteria();
	//查询小于20岁的人
	criteria.andAgeLessThan(20);
	List<User> result = userMapper.selectByExample(example);
	return result;
}

2、服务端分页

服务端分页,需要设置 sidePagination 属性的值为 server,使用server分页,则必须要有 url 或者 ajax 选项,以请求后端页面的数据。服务端分页返回的数据必须包含数据总量 total 以及封装数据的列表 rows 2个参数。

此处同样使用上面“查询小于20岁的用户并展示在表格上”的案例对服务端分页进行说明。

html 与上面相同,此处不再赘述。

(1) js 请求代码
和 client 相比,只有 sidePagination 和 queryParams 两个参数需要修改

sidePagination:"server",
queryParams : function(params){
	var temp = {
		limit:params.limit,  // 每页显示数量 
		offset:params.offset, // SQL语句起始索引
		page: (params.offset / params.limit)+1,
		age : $('search_age').val() 
	};
	return JSON.stringify(temp);
},

(2)User 与 PageReq
User 类需要继承 PageReq 类用于封装分页参数, PageReq的代码如下:

@Data
@NoArgsConstructor  
@AllArgsConstructor
public class PageReq{
	//每页显示数量
	private int limit;
	//页码
	private int page;
	//sql语句开始的索引
	private int offset;
}

(3)封装返回给前端的数据实体类 PageRes
代码如下:

@Data
@NoArgsConstructor  
@AllArgsConstructor
public class PageRes<Bean>{
	//封装实体类数据的list
	private List<Bean> rows;
	//数据总条数
	private Integer total;
}

(4)Controller 层 与 UserMapper 代码
从下面的代码可以看出,server 分页返回的数据需要通过 PageRes 进行封装,同时请求参数里面包含着分页请求参数。

@RequestMapping("/getUserByAge")
@ResponseBody
public PageRes<User> getUserByAge(User user , HttpServletRequest request){
	//每页显示数据条数 
	int limit = user.getLimit();  
	//数据库查询索引起始值  
	int offset = user.getOffset();
	//age参数
	int age = user.getAge();
	//查询出所有满足条件的数据(当前页面)
	List<User> list= userMapper.pageByAge(limit,offset,age);
	//封装返回给前端的数据
	PageRes<User> result = new PageRes<User>();
	result.setRows(list);
	result.setTotal(list.size());

	return result;
}

需要在 UserMapper 中添加1个方法用于分页查询

//查询出分页查询的数据
@Select("select * from User where 1=1 and age > #{age,jdbcType=INTEGER} limit #{offset,jdbcType=INTEGER} , #{limit,jdbcType=INTEGER}")  
List<User> pageByAge(int limit ,int offset ,int age);
bootstrap-table分页功能 引入bootstrap-table-scroll.min.js和bootstrap.min.js 这里记录的是bootstrat-table的后端分页功能,前端分页功能没用过,个人感觉不太实用 后端返回参数的json格式有要求,如下图: 1.必须要返回total–总共的记录的条数 2.list—每一条的内容 其他字段可以根据需求返回 前端的代码: var table=$("#table"); ... 阅读详情

相关推荐

BootstrapTable使用教程

文章目录1. 服务端分页功能 1. 服务端分页功能 sidePagination 属性: data-side-pagination 类型: String 细节: 定义表的侧面分页,只能是 ‘client’ 或 ‘server’。使用 ‘server’ 端需要设置 ‘url’ 或 ‘ajax’ 选项。 请注意,所需的服务器响应格式不同,具体取决于 ‘sidePagination’ 选项设置为 ‘client’ 还是 ‘server’。请参见以下示例: 使用客户端分页 使用服务端分页 默认: ‘client’

牧小七的博客 2219

bootstrap表格分页功能

2、后端分页:每次向后台请求页数,也就是每次只查询当前页面加载所需要的那几条数据。1、前端分页:数据库查询所有的数据,也就是数据一次性加载出来,在前端进行分页。

qq_32871893的博客 2008

Bootstrap-table表头筛选控件开发指南:从原理到实战

在前端开发中,数据表格是展示和处理结构化信息的核心组件,其交互效率直接影响用户体验。表格筛选功能的实现原理,是通过监听用户输入事件,动态过滤数据集或向服务端发送查询参数,从而快速定位目标数据。这项技术的核心价值在于将复杂的查询操作简化为直观的界面交互,显著提升数据检索效率。在实际的工程实践中,开发者常借助jQuery插件或自行封装组件来扩展基础表格功能,以满足多样化的业务需求。例如,在后台管理系统和数据分析报表等应用场景中,一个强大的表头筛选控件能够支持文本模糊匹配、数值区间、日期范围和多选等多种查询方式。

weixin_34364071的博客 349

BootstrapTable 分页属性(sidePagination)设置错误 导致数据无法渲染

BootstrapTable有两种分页方式, 需要后端返回的数据结构有所区别. 如果返回的数据结构与分页方式不同, 会导致无法渲染. 1.后端分页: sidePagination:“server”, 数据需要遵循以下格式: { "rows": [{ "id": 2, "name": "郭包肉", "age": 66, }, { "id": 3, ...

xueshr的博客 1万+

bootstrap-table客户端分页实例

bootstrap-table客户端分页实例,数据源为前端数据,用于测试json数据填充后,形成表格数据类型,初级入门~

IGS精密星历高效获取与解析指南

本文详细介绍了IGS精密星历在高精度定位中的核心作用,对比了IGS Final、IGR和IGU等不同产品的精度与时效性差异。指南提供了从武汉大学、NASA CDDIS等数据中心高效下载数据的实战方法,并深入解析了SP3文件格式,帮助用户掌握精密星历的获取、解析与自动化处理技巧,以支持厘米级定位应用。

garlic的博客 839

Bootstrap-table 表头筛选控件

Bootstrap-table 表头筛选控件,根据Bootstrap-table API,在表头添加筛选排序,支持文本搜索,数值搜索,日期搜索,单选和复选。 依赖js jQuery,Bootstrap,Bootstrap-table,select2 筛选类型说明 1. 文本类型(text) 提供模糊搜索功能,根据输入的参数模糊匹配返回对应的结果 2. 数值类型(num) 提供区间搜索功能,所搜列必须为数值,可以搜索最小值和最大值之间的结果,也可以搜索所有大于最小值或小于最大值的结果。

Moxice的博客 1万+

告别谷歌翻译失效!手把手教你用Immersive Translate插件实现双语网页阅读(附Chrome/Edge/Firefox保姆级配置)

本文详细介绍了如何使用Immersive Translate插件实现双语网页阅读,解决谷歌翻译失效的问题。通过Chrome、Edge和Firefox的保姆级配置指南,帮助用户轻松安装和使用这款支持双语对照、智能识别网页内容的翻译插件,提升外文资料阅读效率。

weixin_28683689的博客 486

bootstrap table分页

1. 客户端分页    1)  js页面 sidePagination : "client", // 设置在哪里进行分页,可选值为"client" 或者 "server" responseHandler: function(data){ return data.rows; }, queryParams : function(params) { ...

qq_37635874的博客 418

基于Open Cluster Management构建企业级多Kubernetes集群管理平台OpenClaw

在云原生架构中,Kubernetes已成为容器编排的事实标准。随着业务规模扩大,企业往往需要管理分布在多个云环境或数据中心的Kubernetes集群,这带来了集群管理、应用分发、策略统一和监控运维等复杂挑战。多集群管理技术通过提供统一控制平面,实现了对分布式资源的集中管控,其核心价值在于提升运维效率、保障安全合规并降低管理成本。Open Cluster Management(OCM)作为CNCF沙箱项目,采用Kubernetes原生架构,通过自定义资源定义(CRD)和控制器模式,为构建多集群管理平台提供了标

weixin_33747129的博客 368

SAP高级外币评估_FINS_FXV_S4 2022 OP

摘要:S/4HANA 2022 On-Premise中的高级外币评估(FINS_FXV)取代了经典外币估值(FAGL_FCV),提供更优化的财务结算功能。主要创新包括:增量发布逻辑、简化账户配置、行项目级估值可见性等。该功能支持IFRS9等会计准则,通过会计原则(Accounting Principle)进行配置,需完成财务报表版本定义、语义标记分配等必要设置。系统演示展示了从汇率维护(FB60/MIRO)、测试运行到最终过账(FB03)的完整流程,能自动计算并过账汇率差异。高级外币评估简化了期末结算操作,

yanzibing99的博客 1260

Bootstrap table 客户端分页和服务端分页

本文不去介绍怎么使用此插件,主要介绍使用的时候注意的事情: 1、服务端分页 将sidePagination属性设为 server 就是每次请求当前页的数据,根据每页大小和页号来从服务器获取数据 返回的数据,必须包含如下字段  total节点(总记录数),rows节点(分页后数据) 即:{“total”:24,”rows”:[…]} rows数组,每一个成员代表表格中的一行所需的数据 ...

1070

基于单片机设计的智能消防排烟窗控制系统_422

随着城市化进程的不断加快,高层建筑、大型商业综合体以及地下空间的数量迅速增加,建筑内部结构日趋复杂,一旦发生火灾,烟雾和有毒气体往往比明火更具威胁性。大量研究表明,在火灾事故中,人员伤亡的主要原因并非直接烧伤,而是由于吸入烟雾及一氧化碳等有毒气体导致窒息。因此,如何在火灾初期快速排烟、降低有害气体浓度,并及时进行预警,成为现代消防系统设计中的关键问题。传统的消防排烟系统多依赖人工操作或简单的联动控制方式,存在响应滞后、自动化程度低、信息反馈不及时等问题。在实际应用中,当火灾发生时,如果不能第一时间开启排烟窗

396

使用bootstrap-table的客户端分页(结合ajax)和服务端分页渲染表格

关于使用Bootstrap-table采用 客户端分页(结合ajax)和服务端分页 两种方法向服务器请求数据并渲染表格 的流程解析1 总述1.1 相关基础1.2 不同方法渲染数据的主要区别1.21客户端方法(结合ajax):1.22服务器端方法:2 业务逻辑及准备环境2.1 主要业务逻辑2.2 相关环境(整个项目采用SpringBoot实现)2.21 服务端的封装查询结果集所需的JSONObject类2.22 关于数据库记录到JavaBean类的映射(Bean类属性名与数据库记录字段名一一对应)2.23 前

New_joined_lion的博客 2376

2024 大型集团人力资源数字化转型业务蓝图规划及实施路径规划方案【附全文阅读】

摘要:本方案针对大型企业人力资源数字化转型需求,重点解决组织协同弱、薪酬绩效管控难等痛点。通过构建"6项能力+8大流程+4大系统"框架,分三阶段(2024-2026年)实施7大项目,包括e-HR系统更换、员工服务平台搭建等核心场景。方案优先推进基础系统改造(2024年),再完善绩效管理和数据分析(2025年),最后落地人才发展等进阶模块(2026年),实现与OA、ERP系统的数据集成,全面提升HR运营效率和员工体验。文末提供的优先级清单明确了10个数字化场景的实施顺序及预期价值。

cdfunlove的博客 1346

使用 Simulink 实现基于相控阵雷达的波束形成技术

摘要:本文详细介绍了利用MATLAB Simulink和Phased Array System工具箱实现相控阵雷达波束形成的完整流程。主要内容包括:1)创建Simulink模型;2)设计天线阵列参数;3)信号生成模块配置;4)波束形成算法实现;5)结果可视化方法;6)仿真调试与优化;7)代码导出与部署。通过分步指导,读者可以掌握从理论到实践的完整开发流程,包括关键参数设置和算法实现示例。该方案适用于军事、气象等领域的雷达系统开发,并支持后续嵌入式和智能算法集成。

xiaoheshang_123的博客 181

bootstrap table 前端分页(client)和服务端分页(server)的配置项差别

前端: sidePagination: "client", //前端分页(客户端) dataField: "count", // 返回的数据必须写死"count" totalField: 'data', // 返回的数据必须写死"data" 说明:一般情况下都是用服务端分页方式,今天试了下前端方式,发现能接收到数据但是无法渲染加载到表格中,后台查看网文才看到前端分页方式是要求 返回的数据中 写死count 和 data 的,用 其它都不行。 服务端: sidePagination: "s..

分享·收获 1996

ONVIF协议简介与协议测试工具使用详解

Onvif协议及协议测试工具使用详解

dvlinker的技术专栏 3万+

BootStrap Table 服务端分页+动态表头

1.问题 (1)由于之前的页面分页是客服端分页,当数据较多时,后台查询较慢,固需要做成服务端分页。 (2)然而表格表头是后台数据解析组装而成的,对于服务端分页来说,无疑需要请求到数据后解析数据来组装表头 (3)踩坑:先前的表头是请求到数据解析组装的,服务端分页又需要先拿到表头,固会造成请求完数据组装好表头后数据渲染不上去的情况,因为先前的表头是空的,并不会因为你请求完数据解析组装好表头而改变,可能有重新初始化表头的方法,但暂时没找到,所以用了其它方案。 方案1:若表头是相对固定的,则提前组装好表头再初始化

qq_44308920的博客 1038

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

bootstrap-table模板(template)-返回表格-分页模板-分页插件

bootstrap-table模板(template)-返回表格-分页模板-分页插件

Too_Soup_Soup的博客 1369

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

bootstrap-table简单的使用介绍以及前后端的参数传递

1、中文官网 BootStrap-Table中文官网 2、简单使用 <div class="container"> <div class="row"> <div class="col-md-8"> <!--添加一个标签即可,信息配置在JS中完成--> <table id="table"></table> </div> </div&

梅花14的博客 7110

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Bootstrap-table表头筛选控件实战:从原理到实现的完整方案

在Web开发中,表格组件是展示结构化数据的核心,而前端筛选功能则是提升用户体验的关键技术。其原理在于通过JavaScript监听用户输入事件,动态过滤本地数据集或向后端发送查询参数,实现数据的实时检索与展示。这项技术的价值在于减少用户操作路径、降低服务器负载,并提升交互的直观性,广泛应用于后台管理系统、数据报表和仪表盘等场景。本文聚焦于Bootstrap-table组件的增强实践,针对其原生筛选功能的不足,提供了基于Bootstrap 5 Dropdown的自定义表头筛选方案。该方案通过封装通用初始化函数,

weixin_30632883的博客 406

bootstrap-table源码解读

1.使用 简单场景: Js代码   &lt;table id="table"&gt;&lt;/table&gt;      $("#table").bootstrapTable({       url: options.url,        method: options.method || 'get',      //请求方式(*)       //toolb...

ronon77的专栏 1044

bootstrap table+ThinkPHP5的服务器分页

$('#d').bootstrapTable({ striped: true,//设置为 true 会有隔行变色效果 method: 'post',//服务器数据的请求方式 'get' or 'post' url: '/admin/pos...

chuanbo5282的博客 611

Wide World Importers 示例应用中的 DataTables for jQuery:安装、配置与 ASP.NET Core 服务端处理实战

DataTables 是为 jQuery 设计的表格增强插件,只需极少的代码即可为普通 HTML 表格附加排序(sorting)、分页(paging)与过滤(filtering)能力,其设计宗旨是"提升 HTML 表格中数据的可访问性"(To enhance the accessibility of data in HTML tables)。本仓库将 DataTables 1.10.16 以 Bo

gitblog_00616的博客 691

Bootstrap Table属性

url: '', //请求后台的URL(*) method: 'get', //请求方式(*) toolbar: '#toolbar', //工具按钮用哪个容器 stripe...

hyj 258
上一篇: Java爬虫案例 -- springboot 整合 webmagic 爬取爱站网百度权重数据(保姆级教程)
下一篇: bootstrap table + java 分页案例--- 2 种分类方法的详细解析
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值