Thymeleaf分页模板

经常在用 Thymeleaf 分页,很多基础的知识已经有点淡忘了,今天做到了分页部分,发现连最基础的逻辑比较都记不清了。于是花了点时间又看了下 Thymeleaf 的基础知识,做了一个相当简陋的分页,记录一下以后翻用。

分页工具类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.bill.util;

import lombok.Data;

import java.util.List;

/**
* 分页工具类,获取分页相关数据项。
*
* @author zhulongkun20@163.com
* @since 2019/12/29 4:01 下午
*/
@Data
public class PageHelper<T> {
// 当前页码
private int currentPage;
// 每页数据量
private int pageSize;
// 总页数
private int totalPage;
// 总数据量
private int totalCount;
// 返回数据
private List<T> dataList;
// 是否为第一页
private boolean isFirstPage;
// 是否是最后一页
private boolean isLastPage;
// 是否有前一页
private boolean hasPreviousPage;
// 是否有后一页
private boolean hasNextPage;

public PageHelper(int currenPage, int pageSize, int totalCount, List<T> dataList) {
this.currentPage = currenPage;
this.pageSize = pageSize;
this.totalCount = totalCount;
this.dataList = dataList;

if (totalCount % pageSize == 0) {
this.totalPage = totalCount / pageSize;
} else {
this.totalPage = totalCount / pageSize + 1;
}

this.isFirstPage = (currentPage == 1);

this.isLastPage = (currentPage == totalPage);

this.hasNextPage = !isLastPage;

this.hasPreviousPage = !isFirstPage;
}
}

Thymeleaf模板:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<ul class="pagination" style="float: right;">
<li>
<a href="#" th:href="@{billContent.do?page=1}">&laquo;</a>
</li>
<li th:if="${pageHelper.getCurrentPage() - 2} &gt; 0">
<a th:text="${pageHelper.getCurrentPage() - 2}"
th:href="@{'billContent.do?page=' + ${pageHelper.getCurrentPage() - 2}}">1</a>
</li>
<li th:if="${pageHelper.getCurrentPage() - 1} &gt; 0">
<a th:text="${pageHelper.getCurrentPage() - 1}"
th:href="@{'billContent.do?page=' + ${pageHelper.getCurrentPage() - 1}}">1</a>
</li>
<li class="active">
<a th:text="${pageHelper.getCurrentPage()}" th:href="@{'billContent.do?page=' + ${pageHelper.getCurrentPage()}}">1</a>
</li>
<li th:if="${pageHelper.getCurrentPage() + 1} &lt; ${pageHelper.getTotalPage() + 1}">
<a th:text="${pageHelper.getCurrentPage() + 1}"
th:href="@{'billContent.do?page=' + ${pageHelper.getCurrentPage() + 1}}">1</a>
</li>
<li th:if="${pageHelper.getCurrentPage() + 2} &lt; ${pageHelper.getTotalPage() + 1}">
<a th:text="${pageHelper.getCurrentPage() + 2}"
th:href="@{'billContent.do?page=' + ${pageHelper.getCurrentPage() + 2}}">1</a>
</li>
<li>
<a href="#" th:href="@{'billContent.do?page=' + ${pageHelper.getTotalPage()}}">&raquo;</a>
</li>
</ul>