paginationhelper.java

来自「社区文章采用的是平板、树形自由选择的两种展示方式」· Java 代码 · 共 144 行

JAVA
144
字号
/* 
 * Created on 2007-12-5
 * Last modified on 2007-12-5
 * Powered by YeQiangWei.com
 */
package com.yeqiangwei.club.util;

public class PaginationHelper {
	
    public static int getLastpage(long total,int rows){
    	int lastpage = 1;
    	if(rows==0){
    		return 1;
    	}
        if(total%rows!=0){
        	lastpage = (int) (total/rows + 1);
        }else{
        	lastpage = (int) (total/rows);
        }
        if(lastpage<1){lastpage=1;}
        return lastpage;
    }
    
    /**
     * 
     * @param s
     * @param e
     * @param page
     * @param rows
     * @param total
     * @param num
     * @param maxpage
     * @return
     */
	public static String getPagination(String s, int page, int rows, long total, int num){
		if((page<1||rows<1||total<1)||total<=rows){
			return "";
		}
		String e = ".html";
		StringBuffer sb = new StringBuffer();
        int start = 1, end = num;
        int pages = getLastpage(total,rows);
        /* 当前页超过总页数 */
        if(page > pages){
        	page = pages;
        	end = pages;
        	start = end - num - 1; 
        }
        /* 当前页大于指定显示的跳转页数 */
        if(page>=num){
            end = page + num;
            start = page - (num - 2);
            if(end>pages){
            	end = pages;
            }
        }
        sb.append("<div class=\"pagination\"><ul>");
        sb.append("<li class=\"ppg\">");
        sb.append(total);
        sb.append("</li>");
        sb.append("<li class=\"ppg\">");
        sb.append(page);
        sb.append("/");
        sb.append(pages);
        sb.append("</li>");
        if(pages-start<num && page>num){
        	start = pages - (num - 2);
        }
    	if(end >= pages){
    		end = pages;
    		start = end - num -1;
    		if(start<=0){
    			start = 1;
    		}
    	}
    	if(start>2){
        	sb.append("<li class=\"png\">");
        	sb.append("<a href=\"");
            sb.append(s);
            sb.append("1");
            //sb.append("lp");
            //sb.append(pages);
            sb.append(e);
            sb.append("\" title=\"跳转到第一页\">1...</a></li>");
    	}else if(start==2){
        	sb.append("<li>");
        	sb.append("<a href=\"");
        	sb.append(s);
            sb.append("1");
            //sb.append("lp");
            //sb.append(pages);
            sb.append(e);
            sb.append("\" title=\"跳转到第一页\">1</a></li>");
            
    	}
        for(int i=start; i<=end; i++){
        	sb.append("<li");
        	if(i==page){
        		sb.append(" class=\"pcg\">");
        		sb.append(i);
        		sb.append("</li>");
        	}else{
	        	sb.append(">");
	        	sb.append("<a href=\"");
	        	sb.append(s);
	            sb.append(i);
	            //sb.append("lp");
	            //sb.append(pages);
	            sb.append(e);
	            sb.append("\"");
	            sb.append(">");
	            sb.append(i);
	            sb.append("</a>");
	            sb.append("</li>");
        	}
        }
        /* 不提供最后一页 
        if(end<pages){
        	sb.append("<li><a href=\"");
            sb.append(url);
            sb.append(pages);
            sb.append("&lpage=");
            sb.append(pages);
            sb.append("\">...");
            sb.append(pages);
        	sb.append("</a></li>");
        }*/
        if(page<pages){
        	sb.append("<li class=\"png\">");
        	sb.append("<a href=\"");
        	sb.append(s);
            sb.append(page+1);
            //sb.append("lp");
            //sb.append(pages);
            sb.append(e);
            sb.append("\">");
        	sb.append("下一页</a></li>");
        }
        sb.append("</ul></div>");
		return sb.toString();
	}
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?