纯后台简单实现分页并返回JSON格式

1、实体层

package com.eccap.es.model;

import java.util.List;

/**
 * 分页信息
 * 
 * @author chaohui.yan
 * @date 2019-06-10
 *
 */
public class Pagefenye<T> {
    // 你页面需要展示的集合
    private List<T> list;
    // 总页数
    private int totalPage;

    // 当前页
    private int currentPage;
    // 每页显示的数目 (为了防止硬编码可以写在配置文件中)
    private int pageSize;

    public Pagefenye(int totalNum, int currentPage, int pageSize, int pageNo) {
        this.currentPage = currentPage;
        this.pageSize = pageSize;
        /*this.pageNo = pageNo;*/

        // 计算总页数
        if (totalNum % this.pageSize == 0)
            this.totalPage = totalNum / this.pageSize;
        else
            this.totalPage = (totalNum / this.pageSize) + 1;
    }

    public List<T> getList() {
        return list;
    }

    public void setList(List<T> list) {
        this.list = list;
    }

    public int getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public int getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

}

2、Dao层select * from 表名 查询

3、service层

    @Autowired
    private EsEntPermitManager esEntPermitManager;
    
    public Pagefenye<T> findAllUsersByPage(int currentPage, int pageSize) {
        List<T> users =“调用查询方法”;//esEntPermitManager.fenye();
        Pagefenye<T> pageInfo = new Pagefenye<>(users.size(), currentPage, pageSize, 5);
        
        //判断是否是最后一页,如果最后一页就显示最后一页的几条,不是最后一页就显示pageSize条
        if(currentPage==pageInfo.getTotalPage())
            pageInfo.setList(users.subList((currentPage-1)*pageSize, users.size()));
        else {
            pageInfo.setList(users.subList((currentPage-1)*pageSize, (currentPage-1)*pageSize+pageSize));
        }
        return pageInfo;
    }

4、controller层

    public String Pagefenye() {
                //接收当前页
        String pageNo = this.getParameter("pageNo");
                //String 转 int
        int isd = Integer.parseInt(pageNo);
        String stg = null;
                //调用业务层方法并传入当前页,每页展示多少条
        Pagefenye<T> list = pagefenyeManager.findAllUsersByPage(isd,100);
        try {    
                       //获取查询结果转为json并展示空值
            stg = JSON.toJSONString(list,SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
            System.out.println(stg);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return stg.toString();
    }        

 

上一篇:vue+element前端自行分页


下一篇:java泛型