tag文件实现分页

JSP文件顶部引用

<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>

tags文件是个目录,指向的可能是tld文件也可能是多个tag文件存在的目录,多个tag可以写在一个tld文件中,用<tag></tag>标识,也可以单独写在一个后缀名是tag的文件中。

 

下面我们讲一个写在tag文件中的例子

<%@tag pageEncoding="UTF-8" %>
<%@ attribute name="page" type="org.springframework.data.domain.Page" required="true" %>
<%@ attribute name="paginationSize" type="java.lang.Integer" required="true" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%
    int current = page.getNumber() + 1;
    int begin = Math.max(1, current - paginationSize / 2);
    int end = Math.min(begin + (paginationSize - 1), page.getTotalPages());

    request.setAttribute("current", current);
    request.setAttribute("begin", begin);
    request.setAttribute("end", end);
%>

<div class="pagination">
    <ul>
        <% if (page.hasPreviousPage()) {%>
        <li><a href="?page=1&sortName=${sortName}&sortOrder=${sortOrder}&${searchParams}"><<</a></li>
        <li><a href="?page=${current-1}&sortName=${sortName}&sortOrder=${sortOrder}&${searchParams}"><</a></li>
        <%} else {%>
        <li class="disabled"><a href="#"><<</a></li>
        <li class="disabled"><a href="#"><</a></li>
        <%} %>

        <c:forEach var="i" begin="${begin}" end="${end}">
            <c:choose>
                <c:when test="${i == current}">
                    <li class="active"><a
                            href="?page=${i}&sortName=${sortName}&sortOrder=${sortOrder}&${searchParams}">${i}</a></li>
                </c:when>
                <c:otherwise>
                    <li><a href="?page=${i}&sortName=${sortName}&sortOrder=${sortOrder}&${searchParams}">${i}</a></li>
                </c:otherwise>
            </c:choose>
        </c:forEach>

        <% if (page.hasNextPage()) {%>
        <li><a href="?page=${current+1}&sortName=${sortName}&sortOrder=${sortOrder}&${searchParams}">></a></li>
        <li><a href="?page=${page.totalPages}&sortName=${sortName}&sortOrder=${sortOrder}&${searchParams}">>></a>
        </li>
        <%} else {%>
        <li class="disabled"><a href="#">></a></li>
        <li class="disabled"><a href="#">>></a></li>
        <%} %>

    </ul>
</div>

 

在页面中

  <tags:pagination page="${users}" paginationSize="20"/>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值