zoukankan      html  css  js  c++  java
  • 大话分页(二)

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

  • 相关阅读:
    韩式英语
    Daily dictation 听课笔记
    words with same pronunciation
    you will need to restart eclipse for the changes to take effect. would you like to restart now?
    glottal stop(britain fountain mountain)
    education 的发音
    第一次用Matlab 的lamada语句
    SVN的switch命令
    String的split
    SVN模型仓库中的资源从一个地方移动到另一个地方的办法(很久才解决)
  • 原文地址:https://www.cnblogs.com/james1207/p/3339446.html
Copyright © 2011-2022 走看看