样式是模仿Google的,我已经测试过了,
主要思想就是把分页模块用JSTL写成一个INCLUDE文件,
然后在要分页的页面调用,
当然要传入必要的五个分页参数
--------------------------------------------
pager.inc.jsp文件如下:
----------------------------------------------------------------------------------------
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!--接收参数total,总记录数-->
<c:set var="total" value="${param.total}"/>
<!--接收参数pageSize,每页最多显示的记录数-->
<c:set var="pageSize" value="${param.pageSize}"/>
<!--接收参数pageEnumShow,每次枚举的页面索引数-->
<c:set var="pageEnumShow" value="${param.pageEnumShow}"/>
<!--接收参数pageUrl,要分页的页面URL-->
<c:set var="pageUrl" value="${param.pageUrl}"/>
<c:choose>
<c:when test="${total > 0}">
<c:choose>
<c:when test="${total % pageSize == 0}">
<c:set var="pageTotal" value="${total / pageSize}"/>
</c:when>
<c:otherwise>
<c:set var="pageTotal" value="${(total - total % pageSize) / pageSize + 1}"/>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${empty param.pageIndex}">
<c:set var="pageIndex" value="1"/>
</c:when>
<c:otherwise>
<c:set var="pageIndex" value="${param.pageIndex}"/>
</c:otherwise>
</c:choose>
<table cellpadding="2" cellspacing="0">
<tr>
<c:choose>
<c:when test="${pageTotal > pageEnumShow}">
<c:choose>
<c:when test="${pageTotal - pageEnumShow + 1 >= pageIndex}">
<c:set var="pageStart" value="${pageIndex}"/>
<c:set var="pageEnd" value="${pageIndex + pageEnumShow - 1}"/>
</c:when>
<c:otherwise>
<c:set var="pageStart" value="${pageTotal - pageEnumShow + 1}"/>
<c:set var="pageEnd" value="${pageTotal}"/>
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<c:set var="pageStart" value="${pageIndex}"/>
<c:set var="pageEnd" value="${pageTotal}"/>
</c:otherwise>
</c:choose>
<c:if test="${pageIndex > 1}">
<td nowrap="nowrap">
<a href="${pageUrl}?pageIndex=${pageIndex - 1}">
<img alt="" src="images/prev.gif" border="0"/>
<br/>
<span style="font-size: 12pt;font-weight:bold">Previous</span>
</a>
</td>
</c:if>
<c:forEach begin="${pageStart}" end="${pageEnd}" var="i">
<td nowrap="nowrap">
<c:choose>
<c:when test="${i == pageIndex && pageIndex == 1}">
<img alt="" src="images/first.gif" border="0"/>
<br/>
1
</c:when>
<c:when test="${pageIndex != i}">
<a href="${pageUrl}?pageIndex=${i}">
<img alt="" src="images/page.gif" border="0"/>
<br/>
<c:out value="${i}"/>
</a>
</c:when>
<c:when test="${pageIndex == i && pageIndex != pageTotal}">
<img alt="" src="images/current.gif" border="0"/>
<br/>
<c:out value="${i}"/>
</c:when>
<c:when test="${pageIndex == pageTotal && pageIndex == i}">
<img alt="" src="images/last.gif" border="0"/>
<br/>
<c:out value="${pageIndex}"/>
</c:when>
</c:choose>
</td>
</c:forEach>
<c:if test="${pageIndex < pageTotal}">
<td nowrap="nowrap">
<a href="${pageUrl}?pageIndex=${pageIndex + 1}">
<img alt="" src="images/next.gif" border="0"/>
<br/>
<span style="font-size: 12pt;font-weight:bold">Next</span>
</a>
</td>
</c:if>
</tr>
</table>
</c:when>
<c:otherwise>
暂无任何记录 !!
</c:otherwise>
</c:choose>
--------------------------------------------页面调用实例(以Struts为例)
<!--下面的这个JavaBean provider ,除了提供记录集合之外,还要提供计算记录总数的getter方法。我有一个简单的计算记录总数的思路就是让JavaBean把记录集保存为一个Collection,然后在它的getTotal方法里面简单地返回Collecition.size()就可以了!-->
----------------------------------------------------------------------------------------
<jsp:useBean id="provider" scope="request" class="mylib.UserBean"></jsp:useBean>
<c:set var="items" scope="request" value="${provider.allItems}"/>
----------------------------------------------------------------------------------------
<c:catch var="exception"><!--捕捉异常-->
<c:set var="pageSize" value="5"/><!--定义每页显示的记录数-->
<!--INCLUDE分页文件-->
<c:import url="pager.inc.jsp">
<!--传入分页参数-->
<c:param name="total" value="${provider.total}"/>
<c:param name="pageSize" value="${pageSize}"/>
<c:param name="pageEnumShow" value="3"/>
<c:param name="pageUrl" value="index.jsp"/>
<c:param name="pageIndex" value="${param.pageIndex}"/>
</c:import>
<!--Iteration begin-->
<br/>
<br/>
<logic:iterate name="items" id="item" offset="${(param.pageIndex - 1) * pageSize}" length="${pageSize}">
<bean:write name="item" property="userName"/>
<br/>
</logic:iterate>
<!--Iteration end-->
</c:catch>
<!--检测异常-->
<c:if test="${!empty exception}">
<font color="red">查询过程中发生错误 !</font>
</c:if>
分享到:
相关推荐
用JSTL实现JSP分页显示数据代码,MySQL数据库,好用,有数据库和表创建代码!!!
如何用JSTL实现分页 如何用JSTL实现分页 如何用JSTL实现分页 如何用JSTL实现分页 如何用JSTL实现分页
jsp+jstl实现分页,简单的分页
jstl实现jsp页面分页,分页格式为: 首页 上一页 3 4 5 6 7 下一页 尾页
javabean+jsp+jstl+sql server2005实现的分页 每页显示5条信息,出现页面的前后三页
用jsp+servlet+EL表达式+JSTL写的分页代码,页面和servlet有详细的注释
jh-plugins是一项基于JSTL的自定义标签(插件)库,致力于打造一处实现、任何项目通用的开源项目。 jh-plugins已实现标签库:分页 jh-plugins特点:高效、轻巧、简单、适用(可融合与任何B/S架构的java项目) jh-...
JSTL&EL分页的例子 这是一个关于jsp的JSTL和El表达式的使用的代码案例 需要的话大家可以参考参考
<%@ 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"> ...
这是一个jsp分页程序,使用JSTL + servlet + EL 完成的 pageSql.sql 是数据库语句 整个执行为:通过传入pageNo(页码),pageSize(每页显示条数)查库,得到一个list数据,并且封装到一个Page对象中,page对象同时还需...
通过JavaScript函数调用jQuery load函数来实现分页。load函数中将起始页数发送至servlet,servlet通过DataService从数据库中获取数据。但是每次点击都会请求数据库。
使用标准的JSTL技术来分页
这是使用jsp的c标记进行的分页, 使得页面上不出现逻辑代码 记得在开头加入C标签 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 1.currPage 是存储在session中的当前页码 2.maxPage 是你计算...
EL表达式及JSTL里三个主要标签实现表的增删改查
使用 jsp servlet mysql 实现的简单分页功能。
自定义jstl写的分页插件
本人用struts+hibernate写的分页,有详细的注解,方便新手学习,在jsp中实现首页下一页上一页末页功能.index.jsp控制showlist.jsp页面中每页显示的信息条数,本实例在xp+tomcat5.5验证通过.数据库使用的sql2000中的pubs...
前几天用jquery+display tag 写了一个局部刷新的分页程序,感觉很不方便,所以自己写了分页程序配合jquery 使用, 一共2个例子,比较简单,第一个用java片写的,不需要添加任何的jar包,第二个用jstl写的,需要用2个jar 包, ...
本文实例为大家分享了jquery+Ajax实现分页条效果的具体代码,供大家参考,具体内容如下 一、如果是jsp页面的话,可以用EL表达式和JSTL标签制作一个分页条,没有什么难度。用EL表达式和JSTL标签实现的缺点就是无法...
JSP实现分页,采用三层开发模式,利用JSTL显示数据,采用Oracle数据库进行开发