java 翻页工具类

Pagination类

package com.paic.bics.core.mybatis.page;

import java.util.List;

@SuppressWarnings("serial")
public class Pagination<T> extends SimplePage implements java.io.Serializable,
        Paginable {

    /**
     * 当前页的数据
     */
    private List<T> list;

    
    
    public Pagination() {
    }

    public Pagination(int pageNo, int pageSize, int totalCount) {
        super(pageNo, pageSize, totalCount);
    }

    @SuppressWarnings("unchecked")
    public Pagination(int pageNo, int pageSize, int totalCount, List list) {
        super(pageNo, pageSize, totalCount);
        this.list = list;
    }

    public int getFirstResult() {
        return (pageNo - 1) * pageSize;
    }

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

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

    
    /**paic.bics SEO 翻页版本*/
    public String getWebPage(String page){
        StringBuffer pageHtml = new StringBuffer("<ul class='pagination'>");
        if(this.getPageNo()>1){
            if(this.getPageNo()>5){
                pageHtml.append("<li><a href='javascript:;' onclick='"+ page +"'>首页</a></li>");
            }
            pageHtml.append("<li><a href='"+ page +""+(this.getPageNo() -1) +"'>上一页</a></li>");
        }
        for (int i = (this.getPageNo()-2<=0?1:this.getPageNo()-2),no = 1; i <= this.getTotalPage()&& no <6 ; i++,no++) {
            if (this.getPageNo() == i) {
                pageHtml.append("<li class='active'><a href='javascript:void(0);' >"+i+"</a></li>");
            }else{
                pageHtml.append("<li><a href='"+ page +""+ i +"'>"+i+"</a></li>");
            }
        }
        if(this.getPageNo() < this.getTotalPage()){
            pageHtml.append("<li><a href='"+ page +""+(this.getPageNo()+1) +"'>下一页</a></li>");
        }
        pageHtml.append("</ul>");
        return pageHtml.toString();
    }
    
    
    
    /**Ajxa翻页*/
    public String getSiAjaxPageHtml(){
        StringBuffer pageHtml = new StringBuffer("<ul class='pagination'>");
        if(this.getPageNo()>1){
            if(this.getPageNo()>5){
                pageHtml.append("<li><a href='javascript:;' onclick='goPageByAjax(1)'>首页</a></li>");
            }
            pageHtml.append("<li><a href='javascript:;'  onclick='goPageByAjax("+(this.getPageNo() - 1)+")'>上一页</a></li>");
        }
        for (int i = (this.getPageNo()-2<=0?1:this.getPageNo()-2),no = 1; i <= this.getTotalPage()&& no <6 ; i++,no++) {
            if (this.getPageNo() == i) {
                pageHtml.append("<li class='active'><a href='javascript:void(0);' >"+i+"</a></li>");
            }else{
                pageHtml.append("<li><a href='javascript:;' onclick='goPageByAjax("+i+")'>"+i+"</a></li>");
            }
        }
        if(this.getPageNo() < this.getTotalPage()){
            pageHtml.append("<li><a href='javascript:;'  onclick='goPageByAjax("+(this.getPageNo() + 1)+")'>下一页</a></li>");
        }
        pageHtml.append("</ul>");
        return pageHtml.toString();
    }
    
    /**普通翻页*/
    public String getPageHtml(){
        StringBuffer pageHtml = new StringBuffer("<ul class='pagination'>");
        if(this.getPageNo()>1){
            if(this.getPageNo()>5){
                pageHtml.append("<li><a href='javascript:;' onclick='_submitform(1)'>首页</a></li>");
            }
            pageHtml.append("<li><a href='javascript:;'  onclick='_submitform("+(this.getPageNo() - 1)+")'>上一页</a></li>");
        }
        for (int i = (this.getPageNo()-2<=0?1:this.getPageNo()-2),no = 1; i <= this.getTotalPage()&& no <6 ; i++,no++) {
            if (this.getPageNo() == i) {
                pageHtml.append("<li class='active'><a href='javascript:void(0);' >"+i+"</a></li>");
            }else{
                pageHtml.append("<li><a href='javascript:;' onclick='_submitform("+i+")'>"+i+"</a></li>");
            }
        }
        if(this.getPageNo() < this.getTotalPage()){
            pageHtml.append("<li><a href='javascript:;'  onclick='_submitform("+(this.getPageNo() + 1)+")'>下一页</a></li>");
        }
        pageHtml.append("</ul>");
        pageHtml.append("<script>");
        pageHtml.append("    function _submitform(pageNo){");
        pageHtml.append("        $("#formId").append($("<input type='hidden' value='" + pageNo +"' name='pageNo'>")).submit();");
        pageHtml.append("    }");
        pageHtml.append("</script>");
        
        return pageHtml.toString();
    }
    
    
}

SimplePage.java

package com.paic.bics.core.mybatis.page;

public class SimplePage implements Paginable {
    private static final long serialVersionUID = 1L;
    public static final int DEF_COUNT = 20;

    public SimplePage() {
    }

    public SimplePage(int pageNo, int pageSize, int totalCount) {
        if (totalCount <= 0) {
            this.totalCount = 0;
        } else {
            this.totalCount = totalCount;
        }
        if (pageSize <= 0) {
            this.pageSize = DEF_COUNT;
        } else {
            this.pageSize = pageSize;
        }
        if (pageNo <= 0) {
            this.pageNo = 1;
        } else {
            this.pageNo = pageNo;
        }
        if ((this.pageNo - 1) * this.pageSize >= totalCount) {
            this.pageNo = totalCount / pageSize;
            if(this.pageNo==0){
                this.pageNo = 1 ;
            }
        }
    }

    /**
     * 调整分页参数,使合理化
     */
    public void adjustPage() {
        if (totalCount <= 0) {
            totalCount = 0;
        }
        if (pageSize <= 0) {
            pageSize = DEF_COUNT;
        }
        if (pageNo <= 0) {
            pageNo = 1;
        }
        if ((pageNo - 1) * pageSize >= totalCount) {
            pageNo = totalCount / pageSize;
        }
    }

    public int getPageNo() {
        return pageNo;
    }

    public int getPageSize() {
        return pageSize;
    }

    public int getTotalCount() {
        return totalCount;
    }

    public int getTotalPage() {
        int totalPage = totalCount / pageSize;
        if (totalCount % pageSize != 0 || totalPage == 0) {
            totalPage++;
        }
        return totalPage;
    }

    public boolean isFirstPage() {
        return pageNo <= 1;
    }

    public boolean isLastPage() {
        return pageNo >= getTotalPage();
    }

    public int getNextPage() {
        if (isLastPage()) {
            return pageNo;
        } else {
            return pageNo + 1;
        }
    }

    public int getPrePage() {
        if (isFirstPage()) {
            return pageNo;
        } else {
            return pageNo - 1;
        }
    }

    protected int totalCount = 0;
    protected int pageSize = 20;
    protected int pageNo = 1;

    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }

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

    public void setPageNo(int pageNo) {
        this.pageNo = pageNo;
    }   
    protected int filterNo;

    public int getFilterNo() {
        return filterNo;
    }

    public void setFilterNo(int filterNo) {
        this.filterNo = filterNo;
    }
   
}

Paginable.java

package com.paic.bics.core.mybatis.page;

public interface Paginable {


        /**
         * 总记录数
         * 
         * @return
         */
        public int getTotalCount();

        /**
         * 总页数
         * 
         * @return
         */
        public int getTotalPage();

        /**
         * 每页记录数
         * 
         * @return
         */
        public int getPageSize();

        /**
         * 当前页号
         * 
         * @return
         */
        public int getPageNo();

        /**
         * 是否第一页
         *
         * @return
         */
        public boolean isFirstPage();

        /**
         * 是否最后一页
         * 
         * @return
         */
        public boolean isLastPage();

        /**
         * 返回下页的页号
         */
        public int getNextPage();

        /**
         * 返回上页的页号
         */
        public int getPrePage();
    }
原文地址:https://www.cnblogs.com/shibazizhan/p/7266909.html