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

bootstrap-table实现服务器分页的示例 (spring 后台)

程序员文章站 2022-04-29 08:34:39
最近前端都是用的bootstrap table这个插件,客户端分页的话数据量一多交互不好,所以大数据量的分页都用服务器端,下面开始撸代码 前端 首先看下bootstra...

最近前端都是用的bootstrap table这个插件,客户端分页的话数据量一多交互不好,所以大数据量的分页都用服务器端,下面开始撸代码

前端

首先看下bootstrap table 默认传的分页参数是什么

  • offset 从哪个下标开始
  • limit 每页限制的数量

可能跟我们的默认分页参数不大一样吧,所以决定改造一下,传到后台的参数为

  • page 第几页 从0开始
  • size 每页显示的数量
  $('#' + tableid).bootstraptable({

     queryparams: function (e) { 
      var param = { 
       size: e.limit, 
       page: (e.offset / e.limit),//不需要+1 
       
      }; 
      return param; 
     },
     sidepagination:“server”;
});

后台 

 @apioperation(value = "获取企业列表,支持分页", notes = "json方法获取用户列表")
 @apiimplicitparams({ @apiimplicitparam(name = "name", value = "企业名称", required = true, datatype = "string"),
 @apiimplicitparam(name = "begintime", value = "开始时间", required = true, datatype = "string") })
 @requestmapping(value="/list",method=requestmethod.post)
 @responsebody
 public map<string,object> list(@requestparam map<string,object> map,@requestparam(required = false) string name, @requestparam(required = false) string begintime, @requestparam(required = false) string endtime, @requestparam(required = false) integer deptid){
  list<map<string,object>> list = new arraylist<>();
  //当前页数
  int page = map.get("page")== null ? 0 : integer.parseint(map.get("page").tostring());
  // 每页行数
  int size = map.get("size") == null ? 10 : integer.parseint(map.get("size").tostring());
  order order = new order(direction.asc,"id");
  order order1 = new order(direction.desc,"createtime");
  list<order> orders = new arraylist<order>();
  orders.add(order1);//先按照createtime 降序排序 然后按照id升序
  orders.add(order);
  sort sort = new sort(orders);
  pageable pageable = new pagerequest(page,size,sort);
  page<company> companypages = null;
  if(stringkit.isempty(name)){
   companypages = companyservice.companydao.findall(pageable);
  }else{
   companypages = companyservice.companydao.findbynamelike(name,pageable);
  }

  list<company> companylist = companypages.getcontent();
  simpledateformat sdf = new simpledateformat("yyyy-mm-dd hh:mm:ss");
  for(company company:companylist){
   map<string,object> maptemp = beankit.describe(company);
   maptemp.put("createtime", sdf.format(company.getcreatetime()));
   list.add(maptemp);
  }
   map<string,object> data = new hashmap<string,object>();
   data.put("total", companypages.gettotalelements());
   data.put("rows", list);
  return data;
 }

注意点

bootstrap table接收的参数中必须要有total和rows,total就是总数量,rows是每页的数量

展示一下效果图吧

bootstrap-table实现服务器分页的示例 (spring 后台)

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