欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

bootstrap table服务端实现分页效果

程序员文章站 2022-11-25 11:20:36
实现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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。