<c:set var="basePath">${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/</c:set>
<base href="${basePath}">
<c:set var="columns" value="5"></c:set>
<table cellspacing="0" cellpadding="0" >
<tr>
<th style="text-align:center" colspan="${columns }"><h3>列表</h3></th>
</tr>
<c:set var="page" value="${page}"></c:set>
<c:forEach var="word" varStatus="status" items="${page.result}">
<c:if test="${status.index%columns == 0}"><tr></c:if>
<td><div>${word[0]}</div><div class="colon">:</div><div class="view">${word[1] }</div></td>
<c:if test="${status.last&&status.index%columns != (columns-1)}">
<c:forEach begin="1" end="${columns-1 - status.index%columns}" step="1">
<td></td>
</c:forEach>
</c:if>
<c:if test="${status.index%columns == columns-1||status.last}"></tr></c:if>
</c:forEach>
<c:set var="btns" value="5"></c:set>
<c:set var="halfbtns" value="${btns%2==0?btns/2:(btns-btns%2)/2}"></c:set>
<c:set var="middlebtns" value="${halfbtns + 1}"></c:set>
<c:set var="pgNum" value="${page.pageNo}"></c:set>
<c:set var="pgSize" value="${page.pageSize}"></c:set>
<c:set var="totalCount" value="${page.totalCount}"></c:set>
<c:set var="totalPage" value="${page.totalPage}"></c:set>
<c:if test="${totalCount - pgSize>0}">
<tr>
<td colspan="${columns }">
<c:forEach begin="${pgNum<middlebtns?1:((pgNum+halfbtns-totalPage)>0?((totalPage-btns + 1 > 0)?(totalPage-btns + 1):1):(pgNum-halfbtns))}" end="${pgNum<middlebtns?((totalPage>btns)?btns:totalPage):(pgNum>(totalPage-halfbtns)?totalPage:(pgNum+halfbtns))}" varStatus="stat">
<c:if test="${pgNum>1&&stat.first}"><a class="pnBtn" href="${basePath}servlet?pageno=1&pagesize=${pgSize}">首页</a><a class="pnBtn" href="${basePath}servlet?pageno=${pgNum-1}&pagesize=${pgSize}">上一页</a><c:if test="${stat.index>1}">...</c:if></c:if>
<c:if test="${stat.index<=totalPage}">
<c:choose>
<c:when test="${stat.index == pgNum}">
<span class="current">${stat.index }</span>
</c:when>
<c:otherwise>
<a href="${basePat}hservlet?pageno=${stat.index}&pagesize=${pgSize}">${stat.index }</a>
</c:otherwise>
</c:choose>
</c:if>
<c:if test="${(pgNum-totalPage<0)&&stat.last}"><c:if test="${stat.index<totalPage}">...</c:if><a class="pnBtn" href="${basePath}servlet?pageno=${pgNum+1}&pagesize=${pgSize}">下一页</a><a class="pnBtn" href="${basePath}servlet?pageno=${totalPage}&pagesize=${pgSize}">末页</a></c:if>
</c:forEach>
</td>
</tr>
</c:if>
</table>
以显示5个按钮为例,
对于起始页,即显示的第一个页码按钮
1.如果当前页小于3,起始页固定为1,
2.如果当前页大于3(包括3),
1.当前页与尾页的差少于2,
1.如果总页数在5页以上(包括5),起始页固定为尾页数过来第5个
2.总页数小于5,起始页固定为1
2.正常情况,起始页为当前页-2
对于末页,即显示的最后一个页码按钮
1.如果当前页小于3
1.如果总页数比5要大,末页为5
2.比5小,末页为尾页
2.当前页大于3
1.当前页与尾页差小于2,末页为尾页
2.否则末页为当前页+2
分享到:
相关推荐
javabean+jsp+jstl+sql server2005实现的分页 每页显示5条信息,出现页面的前后三页
jsp+jstl实现分页,简单的分页
如何用JSTL实现分页 如何用JSTL实现分页 如何用JSTL实现分页 如何用JSTL实现分页 如何用JSTL实现分页
jh-plugins是一项基于JSTL的自定义标签(插件)库,致力于打造一处实现、任何项目通用的开源项目。 jh-plugins已实现标签库:分页 jh-plugins特点:高效、轻巧、简单、适用(可融合与任何B/S架构的java项目) jh-...
使用标准的JSTL技术来分页
用jsp+servlet+EL表达式+JSTL写的分页代码,页面和servlet有详细的注释
NULL 博文链接:https://nnbchuang.iteye.com/blog/1457669
jstl实现jsp页面分页,分页格式为: 首页 上一页 3 4 5 6 7 下一页 尾页
使用EL JSTL表达式 servlet和分页进行编码 新闻管理系统
分页,google验证码组建使用,精美分页样式,次纯属个人准备作品时候的分层作品,使用google验证码组件,以及自己写的分页,感觉用着还可以,分享给大家使用。只有功能,没有美工设计噢~~
使用 jsp servlet mysql 实现的简单分页功能。
JSTL&EL分页的例子 这是一个关于jsp的JSTL和El表达式的使用的代码案例 需要的话大家可以参考参考
用JSTL实现JSP分页显示数据代码,MySQL数据库,好用,有数据库和表创建代码!!!
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ...
一个用struts2+sqlserver2000+jstl做的分页小示例,数据库简单,自己创建。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 1.currPage 是存储在session中的当前页码 2.maxPage 是你计算出来的最大页码 3.servlet/ShowTopicServlet 这个Servlet是你的处理的servlet或者...
一个jar包,用JSTL 在表现层分页
这是一个jsp分页程序,使用JSTL + servlet + EL 完成的 pageSql.sql 是数据库语句 整个执行为:通过传入pageNo(页码),pageSize(每页显示条数)查库,得到一个list数据,并且封装到一个Page对象中,page对象同时还需...
jsp分页:使用Ajax+servlet+json实现分页-附件资源
自定义jstl写的分页插件