大话分页(二)

上篇文章大话分页(一)中简单介绍了Mysql、oracle和SqlServer三种数据库分页的方式以及Hibernate框架进行的分页方式及其优势。接上篇内容,我在此继续介绍。今天我们来简要介绍一下前台页面显示的分页框架:pager-taglib。


pager-taglib

后台无论是使用具体数据库的特色语句进行分页,还是使用Hibernate框架,它们都是将数据封装在PageModel中,都需要将PageModel的对象传递到前台来,并且在前台进行显示。pager-taglib框架就是一个前台显示的框架。使用该框架的步骤基本如下:

1、拷贝pager-taglib.jar包到项目下;

2、在JSP页面中使用taglib指令引入pager-taglib标签库:

<%@ taglib prefix="pg"  uri="http://jsptags.com/tags/navigation/pager" %>;

3、使用pager-taglib标签库进行分页处理。

pager-taglib使用起来非常简单基本使用如下:

<pg:pager items="1000">
	<pg:first>
		<a href="${pageUrl}">首页</a>
	</pg:first>
	<pg:prev>
		<a href="${pageUrl }">前页</a>
	</pg:prev>
	<pg:pages>
		<a href="${pageUrl }">${pageNumber }</a>
	</pg:pages>
	<pg:next>
		<a href="${pageUrl }">后页</a>
	</pg:next>
	<pg:last>
		<a href="${pageUrl }">尾页</a>
	</pg:last>
</pg:pager>


pg:pager:这个标签用来设置分页的总体参数

pg:first:第一页的标签
    pg:pre:上一页标签

pg:next:下一页标签
    pg:last:最后一页的标签
    pg:pages:这个标签用来循环输出页码信息


下面看一个例子。下面是一个具体分页实例的主要分页代码实现:

<TABLE width="778" border=0 align=center cellPadding=0 cellSpacing=0 borderColor=#ffffff style="FONT-SIZE: 10pt">
        <TBODY>
          <TR>
            <TD height=28 align=right vAlign=center noWrap background=images/list_middle.jpg>  
			<!-- url属性:每次点击分页页号都是一次请求,这是所请求的url;
				 maxPageItems属性:设置每页显示的最大行数。默认为10
                                 export:变量的意义-->
			<pg:pager url="org.do" items="${orgPageModel.total }" export="currentPageNumber=pageNumber" maxPageItems="3">
				<!-- 使用param向后台传递参数 -->
				<pg:param name="parentId"/>
				<pg:first>
					<a href="${pageUrl}">首页</a>
				</pg:first>
				<pg:prev>
					<a href="${pageUrl }">前页</a>
				</pg:prev>
				<pg:pages>
				    <!-- 设置当前页的样式:当前页的页号为红色,且不为链接 -->
					<c:choose>
						<c:when test="${currentPageNumber eq pageNumber }">
						<font color="red">${pageNumber }</font>
						</c:when>
						<c:otherwise>
							<a href="${pageUrl }">${pageNumber }</a>
						</c:otherwise>
					</c:choose>
				</pg:pages>
				<pg:next>
					<a href="${pageUrl }">后页</a>
				</pg:next>
				<pg:last>
					<a href="${pageUrl }">尾页</a>
				</pg:last>
			</pg:pager>
    		</TD>
          </TR>
        </TBODY>
      </TABLE>

通过之前的讲解我们可以知道:后台需要PageNo和PageSize两个参数,才能查询上来数据。也就是说前台需要向后台提供这两个参数。

在pager-taglib这个框架中,封装了“pager.offset”参数,也就是“从第几个记录开始查询分页”的意思,即。我们可以在控制器中通过request.getParameter()取得。另外,还需要我们自行设置PageSize(每一页最多几行数据)变量。在哪里设置都无所谓,写在程序里面都没关系。

本文主要介绍了pager-taglib框架的简单实现。其实它还能实现很多样式的分页。这里就不一一介绍了。我写这两篇文章的目的就是感觉学了不少分页,感觉乱哄哄的,所以将它们加以对比,加以整理。从实现上来看,他们还是非常简单的。可是我想说的是越是简单的东西,我们越要对它引起重视。只有踏踏实实走好每一步,才能减少让千里之堤,溃于蚁穴的几率。

原文地址:https://www.cnblogs.com/james1207/p/3339446.html