分页小公举

import java.util.ArrayList;
import java.util.List;

public class pageUtil {

    /**
     *     select * from table limit(startIndex,pageSize)
     *     pageIndex;//当前页码
     *     pageSize;//页面容量 应该>=1
     *     totalIndexCount;//参数总数(由DB查询)
     *
     *
     *     startIndex;//分页结果 开始索引
     *     totalPageCount;//分页结果 总页数
     *     pageList;//分页结果 输出存放每一页数据 从list【1】即第一页开始
     */

    //select * from table limit(startIndex,pageSize)
    private int pageIndex;//当前页
    private int pageSize;//页面容量 应该>=1
    private int totalIndexCount;//参数总数

    private int startIndex;//开始索引
    private int totalPageCount;//总页数
    private List<Integer> pageList = new ArrayList<Integer>();//存放每一页数据

    public pageUtil(int pageIndex, int pageSize, int totalIndexCount) {
        this.setPageSize(pageSize);
        this.totalIndexCount = totalIndexCount;
        this.setTotalPageCount();//先根据用户提供的数据设置总页数
        this.setPageIndex(pageIndex);//设置当前页码     1<=当前页<=总页数

        this.setStartIndex();//设置开始页码
        this.setPageList();//设置分页列表 跳过下标0  即第i页有list[i]项数据
    }

    @Override
    public String toString() {
        return "pageUtil{" +
                "pageIndex当前页" + pageIndex +
                "/ totalPageCount总页数" + totalPageCount +
                ", pageSize页面容量=" + pageSize +
                ", totalIndexCount参数总数=" + totalIndexCount +
                ", startIndex当前页开始索引=" + startIndex +
                ", pageList=" + pageList +
                '}';
    }


    /*-------------------------------------------set----------------------------------------------------------------------------*/

    //参数总数
    public void setTotalIndexCount(int totalIndexCount) {
        this.totalIndexCount = totalIndexCount;
    }

    //页面容量
    public void setPageSize(int pageSize) {
        if (pageSize <= 0) {
            this.pageSize = 1;
        } else {
            this.pageSize = pageSize;
        }
    }

    //设置当前页码
    public void setPageIndex(int pageIndex) {
        /* 保证页数在一个合理范围*/
        if (pageIndex < 1) {
            this.pageIndex = 1;
        } else if (pageIndex > totalPageCount) {
            this.pageIndex = totalPageCount;
        } else {
            this.pageIndex = pageIndex;
        }
    }

    //设置总页数
    public void setTotalPageCount() {
        int remain = this.totalIndexCount / this.pageSize;
        /*如果页面容量大于参数总数会出bug*/
        if (remain == 0 && this.totalIndexCount >= this.pageSize) {
            this.totalPageCount = this.totalIndexCount / this.pageSize;
        } else {
            this.totalPageCount = (this.totalIndexCount / this.pageSize) + 1;
        }
    }

    //开始索引
    public void setStartIndex() {
        this.startIndex = (this.pageIndex - 1) * pageSize;
    }

    //存放每一页的数量
    public void setPageList() {
        this.pageList.add(0);
        if (this.totalPageCount == 1) {
            this.pageList.add(this.totalIndexCount % this.pageSize);
        } else {
            for (int i = 1; i < this.totalPageCount; i++) {
                this.pageList.add(this.pageSize);
            }
            int lastPageSize = this.totalIndexCount % this.pageSize;
            this.pageList.add(lastPageSize);
        }
    }

    /*-------------------------------------------get----------------------------------------------------------------------------*/

    public int getPageIndex() {
        return pageIndex;
    }

    public int getPageSize() {
        return pageSize;
    }

    public int getTotalIndexCount() {
        return totalIndexCount;
    }

    public int getStartIndex() {
        return startIndex;
    }

    public int getTotalPageCount() {
        return totalPageCount;
    }

    public List<Integer> getPageList() {
        return pageList;
    }

    public static void main(String[] args) {
        pageUtil pageUtil = new pageUtil(20, 0, 0);
        System.out.println(pageUtil.toString());
    }
}

    @RequestMapping("/userlist")//查询用户列表
    public String queryUserlist(String queryname, int queryUserRole, int pageIndex, HttpServletRequest req) {
        int currentPageNo = 1;//当前页 默认进入首页为第1页
        int totalUserCount = userService.getAllUserCount();//用户总数
		
        //调用分页小公举
        pageUtil pageUtil = new pageUtil(pageIndex, constants.pageSize, totalUserCount);
		
	//userService.getUserList(queryname, queryUserRole, StartIndex, pageSize);
        List<user> userList = userService.getUserList(queryname, queryUserRole, pageUtil.getStartIndex(), constants.pageSize);
		
		
        req.getSession().setAttribute("userList", userList);
        return "forward:/jsp/userlist.jsp";
    }

posted @ 2022-04-13 15:22  浦西和迪克的爱情故事  阅读(198)  评论(0)    收藏  举报