<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
分享到:
相关推荐
**JSTL分页在Java Web开发中的应用** 在Java Web开发中,处理大量数据时,为了提高用户体验,通常会采用分页展示数据。JSTL(JavaServer Pages Standard Tag Library)是Java的一个标准标签库,它提供了一系列的...
jsp+jstl实现分页,简单的分页
实现JSTL分页的步骤通常如下: 1. **引入JSTL库**:在JSP页面中,我们需要引入JSTL的核心库和EL(Expression Language)库。在`<head>`或`<jsp:directive.page>`部分添加以下两行: ```jsp ...
如何用JSTL实现分页 如何用JSTL实现分页 如何用JSTL实现分页 如何用JSTL实现分页 如何用JSTL实现分页
**JSTL实现分页详解** 在Web开发中,数据量较大的时候,为了提供良好的用户体验,通常会采用分页展示数据。JavaServer Pages Standard Tag Library(JSTL)是Java Web开发中的一个标准标签库,它包含了一系列用于...
jh-plugins是一项基于JSTL的自定义标签(插件)库,致力于打造一处实现、任何项目通用的开源项目。 jh-plugins已实现标签库:分页 jh-plugins特点:高效、轻巧、简单、适用(可融合与任何B/S架构的java项目) jh-...
本示例是基于`jsp`、`servlet`、`EL(Expression Language)`表达式和`JSTL(JavaServer Pages Standard Tag Library)`实现的一个分页代码。下面,我们将深入探讨这些技术及其在分页中的应用。 **1. JSP(Java...
本文将详细介绍如何使用JavaServer Pages Standard Tag Library(JSTL)来实现JSP页面的分页。 首先,JSTL是JSP开发中的一个核心库,它提供了一系列预定义的标签,简化了JSP页面中的Java代码,使得页面更加清晰易读...
本文将深入探讨EL和JSTL的使用,以及如何结合它们实现新闻管理系统的分页功能。 **EL(Expression Language)** EL是一种简洁的脚本语言,主要用于读取和设置JavaBean的属性。它允许开发者在JSP页面中以声明式的...
在JavaWeb开发中,分页是一项常见的功能,它允许用户以较小的数据量浏览大量数据,提高了用户体验并减轻了服务器压力。本项目通过结合jsp、servlet和mysql数据库,实现了简单的分页功能。以下是对这个实现过程的详细...
JSTL 实现 JSP 分页显示数据代码(MySQL 数据库) 本文将详细讲解如何使用 JSTL 实现 JSP 分页显示数据代码,并使用 MySQL 作为数据库。该代码不仅提供了分页显示数据的功能,还提供了数据库和表的创建代码。 标题...
在本项目中,我们主要探讨了Java Web开发中的三个核心组件:JSP(JavaServer Pages)、Servlet和JavaBean,以及如何结合它们实现用户登录功能和分页显示操作。此外,项目还利用了Google的验证码服务来增强安全性。 ...
以下是一个简单的JSTL分页示例: 1. 在服务器端,我们可能有一个返回分页数据的Java方法,例如: ```java public List<User> getUsersByPage(int currentPage, int pageSize) { // 计算总页数 int totalPage = ...
下面,我们将深入探讨JSTL分页的实现细节: 1. **JSTL核心库**:首先,你需要在JSP页面中引入JSTL的核心库,通过`<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>`标签来完成。 2. **分页参数**...
1. **JSTL分页**:JavaServer Pages Standard Tag Library (JSTL) 是一个标准的标签库,它提供了一系列标签用于简化JSP页面的编写。在JSTL中,`<c:forEach>`标签常用于遍历分页数据,而`<c:if>`或`<c:choose>`标签...
在这个"JSTL&EL分页的例子"中,我们将探讨如何使用JSTL和EL来实现分页功能,这是一种在网页上显示大量数据时非常实用的技术。分页可以使用户更方便地浏览和管理信息,避免一次性加载过多数据导致页面响应慢或者内存...
总的来说,理解并掌握JSTL分页的实现方法,不仅可以帮助你高效地处理大量数据,也能让你更好地理解和运用JSTL这个强大的工具。在实际项目中,还可以结合前端框架如Bootstrap的分页组件,进一步优化用户体验。
以下是一个简单的JSTL分页示例: ```jsp ${totalRecords/recordsPerPage}" /> ${param.page}" /> <!-- 显示页码链接 --> ${currentPage gt 1}"> <li><a href="?page=${currentPage-1}">上一页</a></li> ${...
**四、JSTL分页标签库** JSTL提供了一个`fmt:formatNumber`标签用于格式化页码,以及`c:forEach`和`c:when`等标签进行条件判断。例如,JSTL的`fmt:formatNumber`可以用来格式化总页数,确保它始终为整数。 总结来...
Struts2、SQL Server 2000、JSTL 和分页是Web开发中的关键技术,它们共同构建了一个高效、动态的数据展示系统。这个小示例项目展示了如何将这些技术结合使用来实现一个具备分页功能的Web应用程序。 首先,Struts2是...