分页类-pageBean

一、pageBean

我们的pageBean包括六个字段,分别是:每页记录条数、当前页号、总页数、记录总数、展示页面集合以及显示到页面的数据集,
我们的目的是根据前端传回来的当前页号和每页记录数量,得到显示的数据集合并且及时更新我们的页面集合、当前页号、总页数和总记录数。

public class PageBean<T> {
    private int size = 5; //每页显示记录条数
    private int index = 1; //当前页号
    private int totalPageCount = 1; //总页数
    private int totalCount = 0; //记录总数

    private int[] numbers;  //展示页面集合
    private List<T> list; //要显示到页面的数据集

    /**
     * 得到起始记录
     * @return
     */
    public int getStartRow(){
        return (index-1)*size;
    }

    /**
     * 得到结束记录
     * @return
     */
    public int getEndRow(){
        return index*size;
    }

    public int getSize() {
        return size;
    }

    public int getIndex() {
        return index;
    }

    public int getTotalPageCount() {
        return totalPageCount;
    }

    public int getTotalCount() {
        return totalCount;
    }

    public int[] getNumbers() {
        return numbers;
    }

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

    public void setSize(int size){
        if(size>0){
            this.size = size;
        }
    }

    public void setIndex(int index){
        if(index>0){
            this.index = index;
        }
    }

    /**
     * 设置总记录数,并更新totalPageCount和numbers
     * @param count
     */
    public void setTotalCount(int count){
        if(count > 0){
            this.totalCount = count;
            setTotalPageCountByRs();

        }
    }

    /**
     * 根据记录总数计算总页数,并更新展示页面集合
     */
    private void setTotalPageCountByRs(){
        if (this.size > 0 && this.totalCount > 0 && this.totalCount % this.size == 0) {
            this.totalPageCount = this.totalCount / this.size;
        } else if (this.size > 0 && this.totalCount > 0 && this.totalCount % this.size > 0) {
            this.totalPageCount = (this.totalCount / this.size) + 1;
        } else {
            this.totalPageCount = 0;
        }
        setNumbers(totalPageCount);//获取展示页数集合
    }
    public void setNumbers(int totalPageCount){
        if(totalPageCount>0){
            int[] numbers = new int[totalPageCount>10?10:totalPageCount];
            int k=0;
            for(int i=0; i<totalPageCount;i++){
                if((i>=index-(numbers.length/2+1)||i>=totalPageCount-numbers.length) && k<numbers.length){
                    numbers[k++] = i+1;
                }else if(k>=numbers.length){
                    break;
                }
            }
            this.numbers = numbers;
        }
    }

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

二、pageBean的使用

		//接收参数index,size,name,phone
        EmployeeService service = new EmployeeServiceImpl();
        String index1 = req.getParameter("index");
        String size1 = req.getParameter("size");
        String name = req.getParameter("name");
        String phone = req.getParameter("phone");
        int size=5,index=1;
        if(index1!=null && !"".equals(index1)){
            index = Integer.parseInt(index1);
        }
        if(size1!=null&&!"".equals(size1)){
            size = Integer.parseInt(size1);
        }
        //开始分页
        PageBean pageBean = new PageBean();
        pageBean.setIndex(index);
        pageBean.setSize(size);
        int count = service.selectCount(name,phone);
        pageBean.setTotalCount(count);

        int start = pageBean.getStartRow();
        List<Employee> employees = service.selectMore(start,size,name,phone);
        pageBean.setList(employees);

        //设置参数

        req.setAttribute("pageBean",pageBean);
        req.getRequestDispatcher("/listUser.jsp").forward(req,resp);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值