前端页面组件开发工具Pager-taglib

前端页面组件开发工具Pager-taglib

一、Pager-taglib简介

1、Pager-taglib

​ 支持多种风格的分页显示。它是一个Jsp标签库,为在JSP上显示分页信息而设计的一套标签,通过这些标签的不同的组合,会形成多种不一样的分页页面,风格各异,她自带的DEMO就有八种左右的分页风格(在pager-taglib-2.0.war包下的WEB-INF\jsp 中),包括Google的分页风格。而需要订制自已的风格的分页页面也非常简单。

2、分页方式有两种:

一种是:页面分页,即从Action或者其他控制器中得到一个List,在页面上 通过pg:item进行自动分页。适合查询结果不大的情况。
第二种是:数据库分页,即通过把 pageSize,pageNo两参数传给后台进行数据库分页。 适合大量查询。

二、Pager-taglib标签详解

1、pg:pager标签分页时我们重点设置的就是这个标签):这个标签用来设置分页的总体参数,重要参数说明:
**url:**分页的链接根地址,pager标签会在这个链接上附加分页参数pager.offset,后台可根据这个参数分页, 也可自行在URL上添加参数。

​ **items:**总记录数,pager标签正是根据这个值来计算分页参数的。在页面分页时,此参数可以不写,后台会自动计算出分页参数。如果你写的话将以你写的为准。

​ **maxPageItems:**每页显示的行数,也即每页显示的记录数,默认为10这里如果将它误写成maxItems则就还会显示,但是偏移量一定为10页)。 不写此标签,你会发现分页的条数在小于10的时候显示不出来一些数据。当大于10的时候则会出现重复的记录! 如:maxPageItems = “4”

对maxPageItems测试

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<pg:pager url="/pagTaglib/page2.jsp" maxIndexPages="10" export="currentPageNumber=pageNumber"
          items="1000" maxPageItems="5">
    <pg:first>
        <a href="${pageUrl}">首页</a>
    </pg:first>
    <pg:prev>
        <a href="${pageUrl}">上页</a>
    </pg:prev>
    <pg:pages>
        <c:if test="${pageNumber eq currentPageNumber}">
            ${pageNumber}
        </c:if>
        <c:if test="${not (pageNumber eq currentPageNumber)}">
            <a href="${pageUrl}">${pageNumber}</a>
        </c:if>
    </pg:pages>
    <pg:next>
        <a href="${pageUrl}">下页</a>
    </pg:next>
    <pg:last>
        <a href="${pageUrl}">末页</a>
    </pg:last>
</pg:pager>
</body>
</html>

测试结果:
在这里插入图片描述

对maxItems(最大记录数)测试

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<pg:pager url="/pagTaglib/page3.jsp" maxIndexPages="10" export="currentPageNumber=pageNumber"
          items="1000" maxItems="100">
    <pg:first>
        <a href="${pageUrl}">首页</a>
    </pg:first>
    <pg:prev>
        <a href="${pageUrl}">上页</a>
    </pg:prev>
    <pg:pages>
        <c:if test="${pageNumber eq currentPageNumber}">
            ${pageNumber}
        </c:if>
        <c:if test="${not (pageNumber eq currentPageNumber)}">
            <a href="${pageUrl}">${pageNumber}</a>
        </c:if>
    </pg:pages>
    <pg:next>
        <a href="${pageUrl}">下页</a>
    </pg:next>
    <pg:last>
        <a href="${pageUrl}">末页</a>
    </pg:last>
</pg:pager>
</body>
</html>

测试结果:

在这里插入图片描述

maxPageItems和maxItems放在一起测试:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<pg:pager url="/pagTaglib/page3.jsp" maxIndexPages="4" export="currentPageNumber=pageNumber"
          items="50" maxPageItems="7">
    <pg:first>
        <a href="${pageUrl}">首页</a>
    </pg:first>
    <pg:prev>
        <a href="${pageUrl}">上页</a>
    </pg:prev>
    <pg:pages>
        <c:if test="${pageNumber eq currentPageNumber}">
            ${pageNumber}
        </c:if>
        <c:if test="${not (pageNumber eq currentPageNumber)}">
            <a href="${pageUrl}">${pageNumber}</a>
        </c:if>
    </pg:pages>
    <pg:next>
        <a href="${pageUrl}">下页</a>
    </pg:next>
    <pg:last>
        <a href="${pageUrl}">末页</a>
    </pg:last>
</pg:pager>
</body>
</html>

测试结果:
在这里插入图片描述

综上测试结果对比结论:maxItems对于这种页面显示没有任何作用!!!

​ **maxIndexPages:**在循环输出页码的时候,最大输出多少个页码(也就是最多显示多少个页码),默认是10.如:maxIndexPages=“3”

​ **export:**这个属性比较重要,这个属性是让标签给你暴露什么变量,当然这些变量是有选择的,如在Pager标签里,可以暴露出来的变量有 pageOffset及pageNumber,即页码偏移量及页码。通过这两个变量名,可以在Jsp或servlet(或者Action)里面从Request里获得。Export属性接受的值还有表达式,如currentPage=pageNumber表示,把pageNumber的值暴露出来,并赋给一个叫CurrentPage(自定义的)的变量,这个变量将被保存到Request中,在Jsp或servlet中可以得到。通常设为:export=“pageOffset,currentPageNumber=pageNumber”.这里使用currentPageNumber=pageNumber的原因是pg:pages(不是page)标签输出用于存放每次循环的页码号的变量也叫pageNumber。

​ **scope:**将export暴漏出变量,设置器存储范围。取值为:request、session等。默认保存在request范围内。

发布了101 篇原创文章 · 获赞 49 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Austin_/article/details/100084085