一个分页

原创
2015/11/15 21:59
阅读数 291

这两天搞了一个分页,网站有些地方最好别用JS分页,对SEO不好,写个分页给页面用,先通过java代码拼字符串,没什么问题迁移到jstl公共页面上,代码如下:
java代码:

public static String getPagination(int currNo,int pageCount,String url){
	StringBuilder sb = new StringBuilder();
	sb.append("<ul>");
	//上一页
	if(currNo>1){
		sb.append("<li class=\"pgNext link pre \"><a href=\""+url+(currNo-1)+"\" target=\"_self\" >上一页</a></li>");
	}
	
	//qpage
	int qpage=5;
	StringBuilder qpagesb = new StringBuilder();
	int startPoint = currNo-qpage/2;
	int endPoint = currNo+qpage/2;
	//endPoint向后偏移(1-startPoint)保证qpage
	if(startPoint<1){
		endPoint = endPoint+(1-startPoint);
	}
	if(endPoint>pageCount){//startPage向前偏移endPoint-pageCount保证qpage
		startPoint = startPoint-(endPoint-pageCount);
	}
	//end
	if(startPoint<1){
		startPoint = 1;
	}
	if(endPoint>=pageCount){
		endPoint = pageCount;
	}
	
	//首页
	if(startPoint>1){
		qpagesb.append("<li class=\"pgNext link first\"><a href=\""+url+"\" target=\"_self\">1</a></li>");
		if(startPoint-1!=1){
			qpagesb.append("<li class=\"text\">...</li>");
		}
	}
	
	qpagesb.append("<span class='qpages'>");
	for(int i=startPoint;i<=endPoint;i++){
		if(i==currNo){
			qpagesb.append("<li class=\"page-number link pgCurrent\">"+i+"</li>");
		}else{
			qpagesb.append("<li class=\"page-number link\"><a href=\""+url+i+"\" target=\"_self\">"+i+"</a></li>");
		}
	}
	qpagesb.append("</span>");
	
	
	//尾页
	if(pageCount>endPoint){
		if(pageCount-endPoint!=1){
			qpagesb.append("<li class=\"text\">...</li>");
		}
		qpagesb.append("<li class=\"page-number link page-number-last\"><a href=\""+url+pageCount+"\" target=\"_self\">"+pageCount+"</a></li>");
	}
	
	sb.append(qpagesb);
	
	//去第几页
	sb.append("<li class=\"text quickPager\">");
	sb.append("<span class=\"fl\">第</span><div id=\"chatpage\"><input id=\"quickPager\" class=\"pagenum fl\" value=\""+currNo+"\" style=\"width: "+((""+currNo).length()+1)*10+"px;\"><a id=\"enter\" class=\"enter fl\" href=\"javascript:void(0)\"></a></div><span class=\"fl\">&nbsp;/"+pageCount+"&nbsp;页</span>");
	sb.append("</li>");
	//下一页
	if(currNo<pageCount){
		sb.append("<li class=\"pgNext link next\"><a href=\""+url+(currNo+1)+"\" target=\"_self\">下一页</a></li>");
	}
	//去第几楼
	sb.append("<li class=\"text quickPager\">");
	sb.append("<span class=\"fl\">到第</span><div id=\"chatpage\"><input id=\"quickFloor\" class=\"pagenum fl\" value=\"\" style=\"width: 20px;\"></div><span class=\"fl\">&nbsp;/&nbsp;楼</span>");
	sb.append("</li>");
	
	sb.append("</ul>");
	return sb.toString();
}

 

 

jstl版本:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@include file="/WEB-INF/jsp/global/jstl.jsp"%>
<c:set var="currNo" value="${page.pageNumber}"></c:set>
<c:set var="pageCount" value="${page.totalPage}"></c:set>
<c:set var="qpage" value="5"></c:set>
<fmt:formatNumber type="number" var="tempNum" value="${(qpage-(qpage%2))/2}"/>
<c:set var="startPoint" value="${currNo-tempNum}"></c:set>
<c:set var="endPoint" value="${currNo+tempNum}"></c:set>
<c:if test="${startPoint<1}">
	<c:set var="endPoint" value="${endPoint+(1-startPoint)}"></c:set>
</c:if>
<c:if test="${endPoint>pageCount}">
	<c:set var="startPoint" value="${startPoint-(endPoint-pageCount)}"></c:set>
</c:if>

<c:if test="${startPoint<1}">
	<c:set var="startPoint" value="1"></c:set>
</c:if>
<c:if test="${endPoint>=pageCount}">
	<c:set var="endPoint" value="${pageCount}"></c:set>
</c:if>
<ul>
	<c:if test="${currNo>1}">
		<li class="pgNext link pre"><a href="${url}${currNo-1}" target="_self" >上一页</a></li>
	</c:if>
	<c:if test="${startPoint>1}">
		<li class="pgNext link pre"><a href="${url}1" target="_self" >1</a></li>
		<c:if test="${startPoint-1!=1}">
			<li class="text">...</li>
		</c:if>
	</c:if>
	<span class='qpages'>
		<c:forEach begin="${startPoint}" end="${endPoint}" var="i">
			<c:choose>
				<c:when test="${currNo==i}">
					<li class="page-number link pgCurrent">${i}</li>
				</c:when>
				<c:otherwise>
					<li class="page-number link"><a href="${url}${i}" target="_self" >${i}</a></li>
				</c:otherwise>
			</c:choose>
		</c:forEach>
	</span>
	<c:if test="${pageCount> endPoint}">
		<c:if test="${pageCount-endPoint!=1}">
			<li class="text">...</li>
		</c:if>
		<li class="page-number link page-number-last"><a href="${url}${pageCount}" target="_self" >${pageCount}</a></li>
	</c:if>
	
	<li class="text quickPager">
		<span class="fl">第</span>
		<div id="chatpage">
			<input id="quickPager" class="pagenum fl" value="${currNo}" style="width: 40px;">
			<a id="enter" class="enter fl" href="javascript:void(0)"></a>
		</div>
		<span class="fl">&nbsp;${pageCount}&nbsp;页</span>
	</li>
	
	<c:if test="${currNo<pageCount}">
		<li class="pgNext link next"><a href="${url}${currNo+1}" target="_self" >下一页</a></li>
	</c:if>
	
	<li class="text quickPager">
		<span class="fl">到第</span>
		<div id="chatpage">
		<input id="quickFloor" class="pagenum fl" value="" style="width: 20px;">
		</div>
		<span class="fl">&nbsp;/&nbsp;楼</span>
	</li>
</ul>

 

 

 

 

 

展开阅读全文
加载中
点击加入讨论🔥(7) 发布并加入讨论🔥
打赏
7 评论
1 收藏
0
分享
返回顶部
顶部