分页类 完美

最近项目用到一分页类,网上找了半天 ,结果 没有包含对0的处理,也就是传进来的 数据为0时,算法会出错.索性自己 写了一个分页类,记录了下来,希望能帮助有需要的人.

import java.util.List;

/**
 *
 * @author limh
 *
 */
public class Pager {
    private int total_page; // 总页数
    private int total_count; // 总记录数
    private int current_page; // 当前页
    private int page_size; // 每页的数量
    private int first_page; // 首页
    private int pre_page; // 上一页
    private int next_page; // 下一页
    private int last_page; // 最后一页
    private int start_size;// 从第几个开始
    private int end_size;// 到第几个结束
    private boolean is_first; // 是否是第一页
    private boolean is_last; // 是否

    public int getTotal_page() {
        return total_page;
    }

    public void setTotal_page(int total_page) {
        this.total_page = total_page;
    }

    public int getTotal_count() {
        return total_count;
    }

    public void setTotal_count(int total_count) {
        this.total_count = total_count;
    }

    public int getCurrent_page() {
        return current_page;
    }

    public void setCurrent_page(int current_page) {
        this.current_page = current_page;
    }

    public int getPage_size() {
        return page_size;
    }

    public void setPage_size(int page_size) {
        this.page_size = page_size;
    }

    public int getFirst_page() {
        return first_page;
    }

    public void setFirst_page(int first_page) {
        this.first_page = first_page;
    }

    public int getPre_page() {
        return pre_page;
    }

    public void setPre_page(int pre_page) {
        this.pre_page = pre_page;
    }

    public int getNext_page() {
        return next_page;
    }

    public void setNext_page(int next_page) {
        this.next_page = next_page;
    }

    public int getLast_page() {
        return last_page;
    }

    public void setLast_page(int last_page) {
        this.last_page = last_page;
    }

    public int getStart_size() {
        return start_size;
    }

    public void setStart_size(int start_size) {
        this.start_size = start_size;
    }

    public int getEnd_size() {
        return end_size;
    }

    public void setEnd_size(int end_size) {
        this.end_size = end_size;
    }

    public boolean isIs_first() {
        return is_first;
    }

    public void setIs_first(boolean is_first) {
        this.is_first = is_first;
    }

    public boolean isIs_last() {
        return is_last;
    }

    public void setIs_last(boolean is_last) {
        this.is_last = is_last;
    }

    public Pager() {
        super();
    }

    /**
     * 构造函数分页处理 包括对0的处理 ,
     * 总数为0时,部分数据重置为1或true ;
     * current_page 为0时,重置为1;
     * page_size 为0时 ,重置为10;
     *
     * @param current_page
     *            当前页
     * @param page_size
     *            每页的数量
     * @param total_count
     *            总记录数
     */

    public Pager(int current_page, int page_size, int total_count) {

        this.current_page =current_page>0?current_page:1;
        this.page_size = page_size >0 ?page_size:10;

        if (total_count > 0) {
            this.total_page = (int) Math.ceil((double) total_count / page_size);
            this.total_count = total_count;
        } else {
            this.total_page = 1;
            this.total_count = 0;
        }

        this.current_page = this.current_page > this.total_page?1:this.current_page;

        this.next_page = (this.current_page + 1 > this.total_page) ? this.total_page
                : this.current_page + 1;
        this.pre_page = (this.current_page - 1 < 1) ? 1 : this.current_page - 1;

        this.first_page = 1;
        this.last_page = this.total_page;

        this.is_first = this.current_page == 1 ? true : false;
        this.is_last = this.current_page == this.total_page ? true : false;

        this.start_size = (this.current_page - 1) * this.page_size + 1;
        this.end_size = ((this.start_size + this.page_size - 1) > this.total_count ? this.total_count==0?10:this.total_count : (this.start_size + this.page_size-1));

    }
}

分页类

测试分页类,如下

//分页类测试
public class TestPager {
public static void main(String[] args) {

/*    private int total_page; // 总页数
    private int total_count; // 总记录数
    private int current_page; // 当前页
    private int page_size; // 每页的数量
    private int first_page; // 首页
    private int pre_page; // 上一页
    private int next_page; // 下一页
    private int last_page; // 最后一页
    private int start_size;// 从第几个开始
    private int end_size;// 到第几个结束
    private boolean is_first; // 是否是第一页
    private boolean is_last; // 是否
*/    

    Pager pg = new Pager(5,10,50);

    System.out.println("pg.getTotal_page()"+"------||"+pg.getTotal_page());
    System.out.println("total_count"+"-----||"+pg.getTotal_count());
    System.out.println("pg.getCurrent_page()"+"------||"+pg.getCurrent_page());
    System.out.println("pg.getPage_size()"+"------||"+pg.getPage_size());
    System.out.println("pg.getFirst_page()"+"------||"+pg.getFirst_page());
    System.out.println("pre_page"+"-----||"+pg.getPre_page());
    System.out.println("pg.getNext_page()"+"------||"+pg.getNext_page());
    System.out.println("pg.getLast_page()"+"------||"+pg.getLast_page());
    System.out.println("pg.start_size"+"-----||"+pg.getStart_size());
    System.out.println("pg.end_size"+"------||"+pg.getEnd_size());
    System.out.println("pg.is_first"+"-----||"+pg.isIs_first());
    System.out.println("pg.is_last"+"-----||"+pg.isIs_last());

}
}

分页测试



运行效果图



如果为:

参数 :current_page,page_size,count

Pager pg = new Pager(0,0,0);

效果图



如果为:

参数 :current_page,page_size,count

Pager pg = new Pager(9,10,50);

效果图

要渐渐形成自己的代码库.路很远,慢慢走.

时间: 2024-10-08 20:50:27

分页类 完美的相关文章

封装的完美分页类

<?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private $page; //当前页 private $config = arr

完美分页类

1 <?php 2 header("Content-Type:text/html;charset=utf-8"); 3 //加载分页类 4 include "page.class.php"; 5 6 //定义总数 7 $total =0; 8 9 //1.造连接对象 10 $db = new mysqli("localhost","root","123","mydb"); 11 1

完美分页类设计--细说PHP

完美分页类page.class.php,敲完了代码,测试的时候发现一片空白完全没东西输出来,可是代码又没有显示报错,最后只能照着源码一行行的对,发现原来少了个“.”,但是这个 . 是被单引号括起来,被单纯的当做了字符串来看待,所以没有报错.整整用了2个多小时去核对整理自己思路,看代码.因此,细心对于刚开始学PHP参考着源码来敲代码很重要.当我把 . 补齐了,可是效果并不是如下.而是:完全没有分页结构的信息.我显示反复对了好多次分页结构的方法fpage()的代码,都没有感觉都没有问题.当时我代码第

php分页类

<?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private $page; //当前页 private $config = arr

分页类

<?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private $page; //当前页 private $config = arr

Yii2中自带分页类实现分页

转 http://www.cnblogs.com/gyrgyr/p/5249392.html 1.首先写控制器层 先引用pagination类 use yii\data\Pagination; 写自己的方法: function actionFenye(){        $data = Field::find();  //Field为model层,在控制器刚开始use了field这个model,这儿可以直接写Field,开头大小写都可以,为了规范,我写的是大写        $pages = n

加载分页类(实例并优化)

1 <html> 2 <head> 3 <style type="text/css"> 4 .p1 5 { 6 color:yellow; 7 background-color:#00F; 8 font-size:14px; 9 } 10 </style> 11 </head> 12 <body> 13 <?php 14 header("Content-Type:text/html;charset=

page分页类

<?php /** file: Page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private $page; //当前页 private $config = arr

分页类分析 练习

<?php /* file: FYL.class.php 完美分页类 FYL */ class FYL { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private $page; //当前页 private $config = array(