参照jquery_pagination写的一个生成html的类

因为项目需求的变动。现在不能用ajax来显示内容了,所以我最爱的jquer_pagination就没办法用了。无奈之下。我仿照jquery_pagination写了一个html的生成类,希望能帮助到需要的人。当然还有那些会写但是懒得写的人。哈哈!

这个需要的CSS文件就是jquery_pagination里面的那个CSS。也可以自己改写程序和CSS文件。

/**
 * @author Xiao
 * @time 2012-5-4 9:28
 * @description 网站前台用的分页辅助类
 */
public class PaginationUtil {
	
	public static void main(String[] args) {
		for (int i = 1; i <= 20; i++) {
			System.out.println(getPaginationHtml(600, 30, i, 2, 5, "/xxx/ddd/{page}/sss"));
		}
	}
	
	/**
	 * 接收参数,生成分页的静态HTML字符串。
	 * @param allTotal 所有的页面数
	 * @param currentRows 当前页面显示数
	 * @param currentPage 当前页面
	 * @param edgeEntries 边缘页数
	 * @param displayEntries 主体页数
	 * @param link_to 链接(需要加{page}才能显示连接的页码)
	 * @return 分页的html字符串
	 */
	public static String getPaginationHtml(Integer allTotal,Integer currentRows,Integer currentPage,Integer edgeEntries,Integer displayEntries,String link_to){
		StringBuffer sb = new StringBuffer();
		//获取总页码
		Integer total = 0;
		if(allTotal % currentRows > 0){
			total = allTotal / currentRows + 1;
		}else{
			total = allTotal / currentRows;
		}
		//判断如果选中页码大于总页码。则显示总页码数
		if(total < currentPage){
			currentPage = total;
		}
		//左边显示总数量和总页数
		String linkStr = "";
		sb.append("<div class='r'>");
		//上一页
		if(currentPage == 1){
			sb.append("<a class='current prev'>上一页</a>");
		}else{
			linkStr = link_to.replace("{page}", (currentPage - 1) + "");
			sb.append("<a class='paginationBut prev' href='" + linkStr + "'>上一页</a>");
		}
		//判断总页码是否大于需显示的页码数
		if((edgeEntries*2) + displayEntries > total){
			//显示数大于总页数
			for (int i = 1; i <= total; i++) {
				if(i == currentPage){
					sb.append("<span>").append(i).append("</span>");
				}else{
					linkStr = link_to.replace("{page}", i+"");
					sb.append("<a href='").append(linkStr).append("'>" + i + "</a>");
				}
			}
		}else if(currentPage <= 6){
			//页码小于或者等于6时
			Integer currentTotal = 0;
			if(currentPage < 5){
				currentTotal = 5;
			}else{
				currentTotal = currentPage+2;
			}
			for (int i = 1; i <= currentTotal; i++) {
				if(i == currentPage){
					sb.append("<span>").append(i).append("</span>");
				}else{
					linkStr = link_to.replace("{page}", i+"");
					sb.append("<a href='").append(linkStr).append("'>" + i + "</a>");
				}
			}
			
			sb.append("<span>...</span>");
			linkStr = link_to.replace("{page}", (total - 1) + "");
			sb.append("<a href='").append(linkStr).append("'>").append((total - 1)).append("</a>");
			linkStr = link_to.replace("{page}", total + "");
			sb.append("<a href='").append(linkStr).append("'>").append(total).append("</a>");
		}else if((total - 4) <= currentPage){
			linkStr = link_to.replace("{page}", "1");
			sb.append("<a href='").append(linkStr).append("'>1</a>");
			linkStr = link_to.replace("{page}", "2");
			sb.append("<a href='").append(linkStr).append("'>2</a>");
			sb.append("<span>...</span>");
			
			Integer currentTotal = 0;
			if((total - 1) > currentPage){
				currentTotal = currentPage - 3;
			}else{
				currentTotal = total - 4;
			}
			for (int i = currentTotal; i <= total; i++) {
				if(i == currentPage){
					sb.append("<span>").append(i).append("</span>");
				}else{
					linkStr = link_to.replace("{page}", i+"");
					sb.append("<a href='").append(linkStr).append("'>").append(i).append("</a>");
				}
			}
		}else{
			linkStr = link_to.replace("{page}", "1");
			sb.append("<a href='").append(linkStr).append("'>1</a>");
			linkStr = link_to.replace("{page}", "2");
			sb.append("<a href='").append(linkStr).append("'>2</a>");
			sb.append("<span>...</span>");
			
			linkStr = link_to.replace("{page}", (currentPage - 3) + "");
			sb.append("<a href='").append(linkStr).append("'>").append((currentPage - 3)).append("</a>");
			linkStr = link_to.replace("{page}", (currentPage - 2) + "");
			sb.append("<a href='").append(linkStr).append("'>").append((currentPage - 2)).append("</a>");
			linkStr = link_to.replace("{page}", (currentPage - 1) + "");
			sb.append("<a href='").append(linkStr).append("'>").append((currentPage - 1)).append("</a>");
			
			sb.append("<span>").append(currentPage).append("</span>");
			
			linkStr = link_to.replace("{page}", (currentPage + 1) + "");
			sb.append("<a href='").append(linkStr).append("'>").append((currentPage + 1)).append("</a>");
			linkStr = link_to.replace("{page}", (currentPage + 2) + "");
			sb.append("<a href='").append(linkStr).append("'>").append((currentPage + 2)).append("</a>");
			
			sb.append("<span>...</span>");
			linkStr = link_to.replace("{page}", (total - 1) + "");
			sb.append("<a href='").append(linkStr).append("'>").append((total - 1)).append("</a>");
			linkStr = link_to.replace("{page}", total + "");
			sb.append("<a href='").append(linkStr).append("'>").append(total).append("</a>");
		}
		//下一页
		if(currentPage == total){
			sb.append("<a class='current prev'>下一页</a>");
		}else{
			linkStr = link_to.replace("{page}", (currentPage + 1) + "");
			sb.append("<a class='paginationBut prev' href='").append(linkStr).append("'>下一页</a>");
		}
		sb.append(" 到第<input type='text' id='paginationPageNum' style='width:30px;' value='" + currentPage + "'/><input type='button' value='确定' />");
		sb.append("</div>");

		sb.append("<div class='l'><span>共 ").append(allTotal).append(", ").append(total).append("页</span></div>");
		return sb.toString();
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值