layUI和springboot+mybatis-plus做數據表格分頁

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章