layUI和springboot+mybatis-plus做数据表格分页

3 篇文章 0 订阅

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帮你做好了,自己完全不用再去写分页语句。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值