bootstrap table服务端实现分页效果
发布时间 - 2026-01-11 02:43:55 点击率:次实现bootstrap table服务端实现分页demo,具体内容如下

首页index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Demo</title>
<link rel="stylesheet" href="/assets/css/bootstrap.min.css" rel="external nofollow" />
<link rel="stylesheet" href="/assets/css/bootstrap-table.min.css" rel="external nofollow" >
<script src="/assets/js/jquery-2.1.1.min.js"></script>
<script src="/assets/js/bootstrap.min.js"></script>
<script src="/assets/js/bootstrap-table.min.js"></script>
<script src="/assets/js/bootstrap-table-zh-CN.min.js"></script>
<script src="/assets/js/index.js"></script>
</head>
<body>
<!--查询窗体-->
<div class="widget-content">
<form method="post" class="form-horizontal" id="eventqueryform">
<input type="text" class="span2" name="seqNo" placeholder="编号">
<input type="text" class="span3" name="name" placeholder="姓名">
<input type="button" class="btn btn-default span1" id="eventquery" value="查询">
</form>
</div>
<div class="widget-content">
<!--工具条-->
<div id="toolbar">
<button class="btn btn-success btn-xs" data-toggle="modal" data-target="#add">添加事件</button>
</div>
<table id="eventTable"></table>
</div>
</body>
</html>
index.js
$(function() {
// 初始化表格
initTable();
// 搜索按钮触发事件
$("#eventquery").click(function() {
$('#eventTable').bootstrapTable(('refresh')); // 很重要的一步,刷新url!
// console.log("/program/area/findbyItem?offset="+0+"&"+$("#areaform").serialize())
$('#eventqueryform input[name=\'name\']').val('')
$('#eventqueryform input[name=\'seqNo\']').val('')
});
});
// 表格初始化
function initTable() {
$('#eventTable').bootstrapTable({
method : 'post', // 向服务器请求方式
contentType : "application/x-www-form-urlencoded", // 如果是post必须定义
url : '/bootstrap_table_demo/findbyitem', // 请求url
cache : false, // 是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
striped : true, // 隔行变色
dataType : "json", // 数据类型
pagination : true, // 是否启用分页
showPaginationSwitch : false, // 是否显示 数据条数选择框
pageSize : 10, // 每页的记录行数(*)
pageNumber : 1, // table初始化时显示的页数
pageList: [5, 10, 15, 20], //可供选择的每页的行数(*)
search : false, // 不显示 搜索框
sidePagination : 'server', // 服务端分页
classes : 'table table-bordered', // Class样式
// showRefresh : true, // 显示刷新按钮
silent : true, // 必须设置刷新事件
toolbar : '#toolbar', // 工具栏ID
toolbarAlign : 'right', // 工具栏对齐方式
queryParams : queryParams, // 请求参数,这个关系到后续用到的异步刷新
columns : [ {
field : 'seqNo',
title : '编号',
align : 'center'
}, {
field : 'name',
title : '姓名',
align : 'center'
}, {
field : 'sex',
title : '性别',
align : 'center'
}, {
field : 'id',
title : '操作',
align : 'center',
width : '280px',
formatter : function(value, row, index) {
// console.log(JSON.stringify(row));
}
} ],
});
}
// 分页查询参数,是以键值对的形式设置的
function queryParams(params) {
return {
name : $('#eventqueryform input[name=\'name\']').val(), // 请求时向服务端传递的参数
seqNo : $('#eventqueryform input[name=\'seqNo\']').val(),
limit : params.limit, // 每页显示数量
offset : params.offset, // SQL语句偏移量
}
}
服务端 servlet
/**
* Servlet实现类
*/
public class UserFindByItemSetvlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private IUserService service = new UserServiceImpl();
public UserFindByItemSetvlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/json; charset=UTF-8");
// 得到表单数据
int offset = Integer.parseInt(request.getParameter("offset").trim());
int limit = Integer.parseInt(request.getParameter("limit").trim());
String seqNo = request.getParameter("seqNo").trim();
String name = request.getParameter("name").trim();
// 调用业务组件,得到结果
PageBean<UserBean> pageBean;
try {
pageBean = service.findByItem(offset, limit, seqNo, name);
ObjectMapper oMapper = new ObjectMapper();
//对象转换为json数据 ,且返回
oMapper.writeValue(response.getWriter(), pageBean);
} catch (Exception e) {
e.printStackTrace();
}
}
}
分页封装类
/**
* 分页实体类
*/
public class PageBean<T> {
/** 行实体类 */
private List<T> rows = new ArrayList<T>();
/** 总条数 */
private int total;
public PageBean() {
super();
}
public List<T> getRows() {
return rows;
}
public void setRows(List<T> rows) {
this.rows = rows;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
}
获取用户实现类
public class UserServiceImpl implements IUserService{
/**
* sql查询语句
*/
public PageBean<UserBean> findByItem(int offset, int limit, String seqNo, String name) {
PageBean<UserBean> cutBean = new PageBean<UserBean>();
// 基本SQL语句
String sql = "SELECT * FROM c_userinfo where 1=1 ";
// 动态条件的SQL语句
String itemSql = "";
if (seqNo != null && seqNo.length() != 0) {
itemSql += "and SeqNo like '%" + seqNo + "%' ";
}
if (name != null && name.length() != 0) {
itemSql += "and Name like '%" + name + "%' ";
}
// 获取sql连接
Connection con = DButil.connect();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = con.prepareStatement(sql + itemSql + "limit ?,?");
ps.setInt(1, offset);
ps.setInt(2, limit);
rs = ps.executeQuery();
while (rs.next()) {
UserBean bean = new UserBean();
bean.setSeqNo(rs.getInt("seqNo"));
bean.setName(rs.getString("name"));
bean.setSex(rs.getInt("sex"));
bean.setBirth(rs.getString("birth"));
cutBean.getRows().add(bean);
}
// 得到总记录数,注意,也需要添加动态条件
ps = con.prepareStatement("SELECT count(*) as c FROM c_userinfo where 1=1 " + itemSql);
rs = ps.executeQuery();
if (rs.next()) {
cutBean.setTotal(rs.getInt("c"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DButil.close(con);
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return cutBean;
}
}
数据库工具类
/**
* 数据库工具类
*
* @author way
*
*/
public class DButil {
/**
* 连接数据库
*
*/
public static Connection connect() {
Properties pro = new Properties();
String driver = null;
String url = null;
String username = null;
String password = null;
try {
InputStream is = DButil.class.getClassLoader()
.getResourceAsStream("DB.properties");
pro.load(is);
driver = pro.getProperty("driver");
url = pro.getProperty("url");
username = pro.getProperty("username");
password = pro.getProperty("password");
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username,
password);
return conn;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 关闭数据库
*
* @param conn
*
*/
public static void close(Connection con) {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
DB.properties文件
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/gov_social?useUnicode\=true&characterEncoding\=utf-8 username=root password=root
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# bootstrap
# table
# 分页
# bootstrap table 服务器端分页例子分享
# 第一次动手实现bootstrap table分页效果
# Bootstrap table分页问题汇总
# BootStrap Table 分页后重新搜索问题的解决办法
# Bootstrap table两种分页示例
# BootStrap中Table分页插件使用详解
# 基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
# Bootstrap Table服务器分页与在线编辑应用总结
# 解决JS组件bootstrap table分页实现过程中遇到的问题
# bootstrap table分页模板和获取表中的ID方法
# 服务端
# 每页
# 条数
# 行数
# 很重要
# 实体类
# 关系到
# 表单
# 首页
# 转换为
# 具体内容
# 工具条
# 大家多多
# 键值
# 可供选择
# 默认为
# 连接数据库
# 偏移量
# refresh
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
简历没回改:利用AI润色让你的文字更专业
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
如何彻底卸载建站之星软件?
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
如何在云主机上快速搭建网站?
如何在搬瓦工VPS快速搭建网站?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
Laravel如何为API生成Swagger或OpenAPI文档
Laravel如何优化应用性能?(缓存和优化命令)
如何安全更换建站之星模板并保留数据?
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
如何在企业微信快速生成手机电脑官网?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
新三国志曹操传主线渭水交兵攻略
JS碰撞运动实现方法详解
北京专业网站制作设计师招聘,北京白云观官方网站?
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
如何为不同团队 ID 动态生成多个“认领值班”按钮
javascript基于原型链的继承及call和apply函数用法分析
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
公司网站制作需要多少钱,找人做公司网站需要多少钱?
如何解决hover在ie6中的兼容性问题
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
如何正确下载安装西数主机建站助手?
EditPlus中的正则表达式实战(6)
Laravel如何使用Service Container和依赖注入?(代码示例)
Laravel如何生成URL和重定向?(路由助手函数)
如何在阿里云完成域名注册与建站?
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
如何确认建站备案号应放置的具体位置?
googleplay官方入口在哪里_Google Play官方商店快速入口指南
Java垃圾回收器的方法和原理总结
Laravel如何集成Inertia.js与Vue/React?(安装配置)
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
网站制作大概多少钱一个,做一个平台网站大概多少钱?
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
上一篇:深入探讨Linux进程的启动方法
下一篇:石家庄SEO公司如何选择更可靠?
上一篇:深入探讨Linux进程的启动方法
下一篇:石家庄SEO公司如何选择更可靠?

