大话分页(二)
上篇文章大话分页(一)中简单介绍了Mysql、oracle和SqlServer三种数据库分页的方式以及Hibernate框架进行的分页方式及其优势。接上篇内容,我在此继续介绍。今天我们来简要介绍一下前台页面显示的分页框架: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使用起来非常简单基本使用如下:
<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框架的简单实现。其实它还能实现很多样式的分页。这里就不一一介绍了。我写这两篇文章的目的就是感觉学了不少分页,感觉乱哄哄的,所以将它们加以对比,加以整理。从实现上来看,他们还是非常简单的。可是我想说的是越是简单的东西,我们越要对它引起重视。只有踏踏实实走好每一步,才能减少让千里之堤,溃于蚁穴的几率。