Spring Boot Pageable 加thymeleaf实现分页

maven项目pom.xml引入

<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>1.2.3</version>
		</dependency>

 

什么是Pageable:

Page是Spring Data提供的一个接口,该接口表示一部分数据的集合以及其相关的下一部分数据、数据总数等相关信息,通过该接口,我们可以得到数据的总体信息(数据总数、总页数...)以及当前数据的信息(当前数据的集合、当前页数等)

代码部分:

坑:这两句代码要写一起中间不能间隔其他代码

Pageable pageable = new PageRequest(page, 10, sort);
		Page<Student> articleDatas = studentRepository.findAll(pageable);

控制层测试代码

@RequestMapping("/showPageStudent")
	public String showPageStudent(Model model, int page, int totalPage) {
		System.out.println(totalPage);
		if (page == -1) {
			page++;
		}
		if (page == totalPage) {
			page--;
		}
		// 指定排序参数对象:根据id,进行降序查询
		Sort sort = new Sort(Direction.DESC, "id");
		/**
		 * 封装分页实体 参数一:pageIndex表示当前查询的第几页(默认从0开始,0表示第一页) 参数二:表示每页展示多少数据,现在设置每页展示2条数据
		 * 参数三:封装排序对象,根据该对象的参数指定根据id降序查询
		 */
		Pageable pageable = new PageRequest(page, 10, sort);
		Page<Student> articleDatas = studentRepository.findAll(pageable);
		System.out.println("查询总页数:" + articleDatas.getTotalPages());
		System.out.println("查询总记录数:" + articleDatas.getTotalElements());
		System.out.println("查询当前第几页:" + articleDatas.getNumber() + 1);
		System.out.println("查询当前页面的记录数:" + articleDatas.getNumberOfElements());

		// 查询出的结果数据集合
		List<Student> articles = articleDatas.getContent();
		System.out.println("查询当前页面的集合:" + articles);
		model.addAttribute("list", articles);
		model.addAttribute("TotalPages", articleDatas.getTotalPages());
		model.addAttribute("TotalElements", articleDatas.getTotalElements());
		model.addAttribute("Numbe", articleDatas.getNumber() + 1);
		model.addAttribute("NumberOfElements", articleDatas.getNumberOfElements());
		model.addAttribute("temp", page);
		return "showStudent";
	}

网页部分

网页使用了thymeleaf模板!!!

showStudent.html

<html xmlns:th="http://www.thymeleaf.org">
<head th:fragment="htmlhead">
<meta charset="utf-8"></meta>
</head>
<body>
	<table border="1" align="center"
		style="font-size: 20px; align-content: center;">
		<thead>
			<tr>
				<th>ID</th>
				<th>姓名</th>
				<th>性别</th>
				<th>班级</th>
				<th>年龄</th>
				<th>操作</th>
			</tr>
			<tr th:each="student:${list}">
				<td th:text="${student.id}"></td>
				<td th:text="${student.name}"></td>
				<td th:text="${student.gender}"></td>
				<td th:text="${student.grade}"></td>
				<td th:text="${student.age}"></td>
				<td><a href="#" th:href="@{/deleteStudent(id=${student.id})}">删除</a>
					<a href="#" th:href="@{/findByID(id=${student.id})}">更新</a></td>
			</tr>
		</thead>
	</table>
	<div align="center">
		<a th:href="@{/showPageStudent(page=0,totalPage=${TotalPages})}">首页</a>
		<a
			th:href="@{/showPageStudent(page=${temp-1},totalPage=${TotalPages})}">上一页</a>
		<a
			th:href="@{/showPageStudent(page=${temp+1},totalPage=${TotalPages})}">下一页</a>
		<a th:href="@{/showPageStudent(page=${TotalPages-1})}">末页</a>
	</div>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茅十八呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值