前言
- thymeleaf 3.0.9.RELEASE
- thymeleaf 模板方式调用
- css需要替换
效果
调用分页模板
<div class="pager th:replace="base :: page_pager(1, -1, 12, @{/c})">
</div>
<div class="pager th:replace="base :: page_pager(${page.number+1}, -1, ${page.totalPages}, @{/c(id=${param.id})})">
</div>
模板部分代码
<!--
number 页码。页码从1开始,如:1,2,3,4,5,...
offset 页码偏移量。如果页码是从0开始,则偏移量为-1;如果页码从1开始,偏移量为0
totalPages 分页后,页的总数量。
url URL地址。形如:/c , /c?id=1, /c/b?id=1&limit=10。
1,会自动向url中添加页码,如:/c?id=1&page=1, /c/b?id=1&limit=10&page=1
2,当超过totalPages>maxButtons时,会显示...代替多余的按钮
3,maxButtons>=floatButtons*2
-->
<div class="pager layui-clear" th:fragment="page_pager(number, offset, totalPages, url)" th:with="maxButtons=10,floatButtons=5">
<ul class="pagination">
<!-- 上一页 -->
<li th:if="${number == 1}"><span>上一页</span></li>
<li th:if="${number > 1}"><a th:href="@{${url}(page=${number+offset-1})}">上一页</a></li>
<!-- 首页 -->
<li th:if="${number == 1}" class="active"><span>1</span></li>
<li th:if="${number > 1}"><a th:href="@{${url}(page=${1+offset})}">1</a></li>
<th:block th:if="${totalPages>2 && totalPages<=maxButtons}" th:each="i : ${#numbers.sequence(2,totalPages-1)}">
<li th:if="${number == i}" class="active"><span th:text="${i}">页码</span></li>
<li th:if="${number != i}"><a th:href="@{${url}(page=${i+offset})}" th:text="${i}">页码</a></li>
</th:block>
<th:block th:if="${totalPages > maxButtons}">
<th:block th:if="${(number-(floatButtons/2)) <= 2}" th:each="i : ${#numbers.sequence(2,2+floatButtons-1)}">
<li th:if="${number == i}" class="active"><span th:text="${i}">页码</span></li>
<li th:if="${number != i}"><a th:href="@{${url}(page=${i+offset})}" th:text="${i}">页码</a></li>
</th:block>
<!-- ... -->
<li th:if="${(number-(floatButtons/2))>2}"><span>...</span></li>
<th:block th:if="${((number-(floatButtons/2))>2) && ((number+(floatButtons/2)-(floatButtons%2==0?1:0)) < (totalPages-1))}"
th:each="i : ${#numbers.sequence(number-(floatButtons/2),number+(floatButtons/2)-(floatButtons%2==0?1:0))}">
<li th:if="${number == i}" class="active"><span th:text="${i}">页码</span></li>
<li th:if="${number != i}"><a th:href="@{${url}(page=${i+offset})}" th:text="${i}">页码</a></li>
</th:block>
<!-- ... -->
<li th:if="${(number+(floatButtons/2)-(floatButtons%2==0?1:0)) < (totalPages-1)}"><span>...</span></li>
<th:block th:if="${(number+(floatButtons/2)-(floatButtons%2==0?1:0)) >= (totalPages-1)}" th:each="i : ${#numbers.sequence(totalPages-floatButtons,totalPages-1)}">
<li th:if="${number == i}" class="active"><span th:text="${i}">页码</span></li>
<li th:if="${number != i}"><a th:href="@{${url}(page=${i+offset})}" th:text="${i}">页码</a></li>
</th:block>
</th:block>
<!-- 最后一页 -->
<li th:if="${totalPages>1 && number == totalPages}" class="active"><span th:text="${totalPages}">页码</span></li>
<li th:if="${totalPages>1 && number != totalPages}"><a th:href="@{${url}(page=${totalPages+offset})}" th:text="${totalPages}">页码</a></li>
<!-- 下一页 -->
<li th:if="${number >= totalPages}"><span>下一页</span></li>
<li th:if="${number < totalPages}"><a th:href="@{${url}(page=${number+offset+1})}">下一页</a></li>
</ul>
</div>
参考
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html