SpringBoot+Thymeleaf+BootStrap4实现带有省略号的分页

思路如下


当总页数小于等于7时

1

2

3

4

5

6

7

 

 

当总页数大于7时

 

(1)当前页面小于等于4

1

2

3

4

5

...

n

 

(2) 最后一页与当前页面之差小于等于3

1

...

n-4

n-2

n-2

n-1

n

 

(3)最后一页与当前页面之差大于3 且当前页面大于4 ,index指当前页面

1

...

index-1

index

index+1

...

n


代码如下:

<div class="row">
        <div class="offset-md-3 col-md-7">

            <!-- 处理页数小于等于7 的情况 -->
            <ul th:if="${(totalPages le 7)&&(totalPages gt 0)}" class="pagination">
                <li th:if="${pageIndex eq 1}" class="page-item disabled"><a class="page-link" href="#">上一页</a></li>
                <li th:if="${pageIndex gt 1}" class="page-item">
                    <a class="page-link" th:href="@{/users(pageIndex=${pageIndex}-1,size=${size})}">上一页</a>
                </li>

                <li th:each="index:${#numbers.sequence(1,totalPages)}" th:classappend="${index eq pageIndex}?'active'" class="page-item">
                    <a th:href="@{/users(pageIndex=${index},size=${size})}" class="page-link"  th:text="${index}"></a>
                </li>

                <li th:if="${pageIndex eq totalPages}" class="page-item disabled"><a class="page-link" href="#">下一页</a></li>
                <li th:if="${pageIndex lt totalPages}" class="page-item">
                    <a class="page-link" th:href="@{/users(pageIndex=${pageIndex}+1,size=${size})}">下一页</a>
                </li>
            </ul>

            <!-- 处理页数大于7 的情况 -->
            <ul th:if="${totalPages gt 7}" class="pagination">
                <li th:if="${pageIndex eq 1}" class="page-item disabled"><a class="page-link" href="#">上一页</a></li>
                <li th:if="${pageIndex gt 1}" class="page-item">
                    <a class="page-link" th:href="@{/users(pageIndex=${pageIndex}-1,size=${size})}">上一页</a>
                </li>

                <!-- 首页 -->
                <li th:classappend="${pageIndex eq 1}?'active'" class="page-item">
                    <a class="page-link" th:href="@{/users(pageIndex=1,size=${size})}">1</a>
                </li>

                <!-- 当前页面小于等于4 -->
                <li th:if="${pageIndex le 4}" th:each="index:${#numbers.sequence(2,5)}" th:classappend="${index eq pageIndex}?'active'" class="page-item">
                    <a th:href="@{/users(pageIndex=${index},size=${size})}" class="page-link"  th:text="${index}"></a>
                </li>
                <li th:if="${pageIndex le 4}" class="page-item">
                    <a  class="page-link" th:href="@{/users(pageIndex=6,size=${size})}">...</a>
                </li>

                <!-- 最后一页与当前页面之差小于等于3 -->
                <li th:if="${totalPages-pageIndex le 3}" class="page-item">
                    <a  class="page-link" th:href="@{/users(pageIndex=${totalPages-5},size=${size})}">...</a>
                </li>
                <li th:if="${totalPages-pageIndex le 3}" th:each="index:${#numbers.sequence(totalPages-4,totalPages-1)}" th:classappend="${index eq pageIndex}?'active'" class="page-item">
                    <a th:href="@{/users(pageIndex=${index},size=${size})}" class="page-link"  th:text="${index}"></a>
                </li>

                <!-- 最后一页与当前页面之差大于3 且当前页面大于4 -->
                <li th:if="${(pageIndex gt 4) && (totalPages-pageIndex gt 3)}" class="page-item">
                    <a class="page-link" th:href="@{/users(pageIndex=${pageIndex-2},size=${size})}">...</a>
                </li>
                <li th:if="${(pageIndex gt 4) && (totalPages-pageIndex gt 3)}" th:each="index:${#numbers.sequence(pageIndex-1,pageIndex+1)}" th:classappend="${index eq pageIndex}?'active'" class="page-item">
                    <a class="page-link" th:href="@{/users(pageIndex=${index},size=${size})}" th:text="${index}"></a>
                </li>
                <li th:if="${(pageIndex gt 4) && (totalPages-pageIndex gt 3)}" class="page-item">
                    <a class="page-link" th:href="@{/users(pageIndex=${pageIndex+2},size=${size})}">...</a>
                </li>

                <!-- 尾页 -->
                <li th:classappend="${pageIndex eq totalPages}?'active'" class="page-item">
                    <a class="page-link" th:href="@{/users(pageIndex=${totalPages},size=${size})}" th:text="${totalPages}">尾页</a>
                </li>

                <li th:if="${pageIndex eq totalPages}" class="page-item disabled"><a class="page-link" href="#">下一页</a></li>
                <li th:if="${pageIndex lt totalPages}" class="page-item">
                    <a class="page-link" th:href="@{/users(pageIndex=${pageIndex}+1,size=${size})}">下一页</a>
                </li>

                <div class="input-group" style="height: 38px;width: 150px;">
                    <input type="number" min="1" th:max="${totalPages}" th:value="${pageIndex}" class="form-control toPage">
                    <div class="input-group-append">
                        <button type="button" class="btn btn-primary toUrl">跳转</button>
                    </div>
                </div>

            </ul>
        </div>
    </div>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值