<div class="pagelist"> <a href="${pageContext.request.contextPath}/sales_list.action?currentPage=1">首页</a>
<a href="${pageContext.request.contextPath}/sales_list.action?currentPage=${p.currentPage-1}">上一页</a>
<c:forEach begin="${ p.totalCount > 10 ? ( p.currentPage>5?p.currentPage-4:1 ):1 }" end="${p.totalCount<10?p.totalCount:( ((p.currentPage>5?p.currentPage-4:1)+9) > p.totalCount ? p.totalCount : ( ( p.totalCount > 10 ? ( p.currentPage>5?p.currentPage-4:1 ):1 )+9 ) ) }" varStatus="status">
<c:if test="${p.currentPage==status.index}"> <span class="current">${p.currentPage }</span>
</c:if>
<c:if test="${p.currentPage!=status.index}"> <a href="${pageContext.request.contextPath}/sales_list.action?currentPage=${status.index}">${status.index }</a>
</c:if>
</c:forEach> <a href="${pageContext.request.contextPath}/sales_list.action?currentPage=${p.currentPage+1}">下一页</a>
<a href="${pageContext.request.contextPath}/sales_list.action?currentPage=${p.totalCount}">尾页</a>
</div>
而其中的要点则在于:
<c:forEach begin="${ p.totalCount > 10 ? ( p.currentPage>5?p.currentPage-4:1 ):1 }" end="${p.totalCount<10?p.totalCount:( ((p.currentPage>5?p.currentPage-4:1)+9) > p.totalCount ? p.totalCount : ( ( p.totalCount > 10 ? ( p.currentPage>5?p.currentPage-4:1 ):1 )+9 ) ) }" varStatus="status">
这个表达式到处的 ?: 三目运算符,实在是眼花缭乱,讲道理,这辈子只想写一次,以后都是复制粘贴!