bootstrap table服务端实现分页效果
程序员文章站
2022-05-26 08:16:34
实现bootstrap table服务端实现分页demo,具体内容如下
首页index.html
实现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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: Vue数组更新及过滤排序功能
下一篇: Ionic3实现图片瀑布流布局
推荐阅读
-
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
-
Bootstrap实现表格分页
-
用AjaxPro实现无刷新翻页效果及数据库分页技术介绍
-
PHP自练项目之数字与文字的分页效果在函数中实现
-
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用_php实例
-
PHP使用Mysqli类库实现完美分页效果的方法_PHP
-
PHP实现仿Google分页效果的分页函数
-
lamp的论坛程序实现像CSDN论坛分页一样的分页效果该如何写
-
Bootstrap图片轮播效果实现方法
-
bootstrap左侧导航 手风琴效果如何实现_html/css_WEB-ITnose