您当前的位置: 首页 >  后端

梁云亮

暂无认证

  • 2浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【精品】封装好的 通用的 前后端 分页技术 实例

梁云亮 发布时间:2021-11-10 18:28:16 ,浏览量:2

本博客中使用到的JsonUtil参看博客:Jackson工具类

MyBatis 版
  • 使用分页插件:

    com.github.pagehelper
    pagehelper
    5.3.0

  • PageBean
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {
    /**
     * 每页显示的条数
     */
    private Integer pageSize = 10;

    /**
     * 当前的页码
     */
    private Integer current;

    /**
     * 一共有多少条记录
     */
    private Long total;

    /**
     * 一共有多少页
     */
    private Integer pages;

    /**
     * 每一页所显示的数据
     */
    private List result;

    /**
     * 分页请求路径
     */
    private String url;
  
    @Override
    public String toString() {
        return  JsonUtil.obj2String(this);
    }

    /**
     * 将MyBatisPlus返回的IPage数据封装为自定义的PageBean
     *
     * @param page
     * @param 
     * @return
     */
    public static  PageBean init(Page page) {
        PageBean pageBean = new PageBean();
        pageBean.setCurrent(page.getPageNum());
        pageBean.setPageSize(page.getPageSize());
        pageBean.setPages(page.getPages());
        pageBean.setTotal(page.getTotal());
        pageBean.setResult(page.getResult());
        return pageBean;
    }
}
MyBatisPlus版
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.pagehelper.Page;
import com.resume.utils.JsonUtil;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * 分页Bean
 *
 * @param 
 * @author 梁云亮
 */
@Setter
@Getter
public class PageBean {
    /**
     * 每页显示的条数
     */
    private Long size = 10L;
    
    /**
     * 当前的页码
     */
    private Long current;
    
    /**
     * 一共有多少条记录
     */
    private Long total;
    
    /**
     * 一共有多少页
     */
    private Long pages;
    
    /**
     * 每一页所显示的数据
     */
    private List records;

    /**
     * 分页请求路径
     */
    private String url;
    
    /**
     * 将MyBatisPlus的IPage对象转换为自定义的PageBean对象
     *
     * @param page
     * @return
     */
    public static  PageBean init(IPage page) {
        PageBean pageBean = new PageBean();
        pageBean.setSize(page.getSize());
        pageBean.setCurrent(page.getCurrent());
        pageBean.setTotal(page.getTotal());
        pageBean.setPages(page.getPages());
        pageBean.setRecords(page.getRecords());
        return pageBean;
    }
    
    @Override
    public String toString() { //测试时使用
        return JsonUtil.obj2StringPretty(this);
    }
}
控制器
@GetMapping("/getAllUser/{pageNum}/{pageSize}")
public ModelAndView getAllUser(
        @PathVariable("pageNum") Integer pageNum,
        @PathVariable("pageSize") Integer pageSize,
        ModelAndView mav){
    PageBean pageBean = userService.selectPage(pageNum, pageSize);
    pageBean.setUrl("user/getAllUser");
    mav.addObject("pageBean",pageBean);
    mav.setViewName("user/list");
    return mav;
}
通用分页代码




    
        上一页
    
    
        
            上一页
        
    

    
        
            
                ${index}
            
            
                
                    ${index}
                
            
        
    
    
        
            
                ${index}
            
            
                
                    ${index}
                
            
        
    

    
        下一页
    
    
        
            下一页
        
    

效果图

请添加图片描述

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0438s