大话分页(二)

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

 

你可能感兴趣的:(分页)