1.表格设置开启分页(更多的参数参考layUI文档:https://www.layui.com/doc/modules/table.html)
table.render({
elem: '#demo',
toolbar:'#toolbarDemo', //添加头部工具栏,工具栏的定义在script模块中
/* even:true,
defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
title: '提示'
,layEvent: 'LAYTABLE_TIPS'
,icon: 'layui-icon-tips'
}],*/
url: '/dzjz/getInfo',
cellMinWidth: 80 ,//全局定义常规单元格的最小宽度,layui 2.2.1 新增
cols: [
[
{type: 'checkbox', fixed: 'left'},
{field: 'id',title:'id',hide:true},
{field: 'xh',title: '序号', templet:'#zizeng',width: 80,sort: true,fixed: 'left'},
{field: 'dw',title: '单位' },
{field: 'time',title: '时间',sort:true},
,{fixed: 'right', title:'操作', toolbar: '#barDemo',width:150}
]
]
,page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
//,curr: 5 //设定初始在第 5 页
,groups: 1 //只显示 1 个连续页码
,first: false //不显示首页
,last: false //不显示尾页
}
,height: 'full-190'
,text: {
none: '暂无相关数据'
}
讲解:表格开启分页后,并不代表着可以进行分页了,需要和后台进行交互,开启分页只是默认给后台的方法传入两个参数(page和limit)。
2.后台接收前台的分页参数,注意,这里的page和limit参数并没有显性的展示出来,只是表格开启分页之后默认就传给后台了,参数名是固定的。
/**
* 查询出所有的数据
* @return
*/
@RequestMapping("/getInfo")
public Map<String, Object> getDzjz(@RequestParam Integer page, @RequestParam Integer limit,
@RequestParam(required = false) String begintime,
@RequestParam(required = false) String endtime,
@RequestParam(required = false) String badw){
Page<Dzjz> p = dzjzService.getInfo(page,limit,begintime,endtime,badw);
Map<String,Object> map = new HashMap<String,Object>();
map.put("code","0");
map.put("msg","成功");
map.put("count",p.getTotal());
map.put("data",p.getRecords());
return map;
}
3.配置出mybatis-plus的分页插件,作为一个配置类,把它配出来。
package org.rjk.mp.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyBatisPlusConfig {
/**
* 分页插件
* @return
*/
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
}
4.利用mp中的page类进行分页,具体实现:
//这是service的实现类,具体做法是,将查出的数据list放到mp的records方法中
@Service
public class DzjzServiceImpl extends ServiceImpl<DzjzMapper,Dzjz> implements DzjzService {
@Autowired
DzjzMapper dzjzMapper;
@Override
public Page<Dzjz> getInfo (Integer pageNo,Integer pageSize,String begintime,String endtime,String badw){
Page<Dzjz> page = new Page<>(pageNo,pageSize);
List<Dzjz> list = dzjzMapper.getInfo(begintime,endtime,badw,page);
return page.setRecords(list);
}
4-1:
//这是controller,很简单,只需要把page类中的所有记录放到layUI的json数据中,p.getTotal()方法自动
//查出所记录的条数
/**
* 查询出所有的数据
* @return
*/
@RequestMapping("/getInfo")
public Map<String, Object> getDzjz(@RequestParam Integer page, @RequestParam Integer limit,
@RequestParam(required = false) String begintime,
@RequestParam(required = false) String endtime,
@RequestParam(required = false) String badw){
Page<Dzjz> p = dzjzService.getInfo(page,limit,begintime,endtime,badw);
Map<String,Object> map = new HashMap<String,Object>();
map.put("code","0");
map.put("msg","成功");
map.put("count",p.getTotal());
map.put("data",p.getRecords());
return map;
}
5.前台测试,分页正常。
踩过的坑:
1.分页条不显示,两种情况,一种的表格的高度影响,第二种是条数为0;我的就是条数为0 不显示。
2.分页不管用,我的是忘记把mybatis-plus的配置分页插件给配出来了。
3.分页不用在SQL语句上做,mybatis-plus帮你做好了,自己完全不用再去写分页语句。