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幫你做好了,自己完全不用再去寫分頁語句。