springboot的前后端不分离项目是怎么实现分页的?
时间: 2024-02-16 09:59:58 浏览: 35
在 Spring Boot 的前后端不分离项目中,通常可以使用 Spring Data JPA 和 Thymeleaf 来实现分页。具体步骤如下:
1. 在后端代码中,使用 Spring Data JPA 来实现数据的查询和分页功能。可以通过 Pageable 对象来指定查询的页码、每页的数据量等参数。例如:
```java
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
Page<User> findAll(Pageable pageable);
}
```
2. 在前端代码中,使用 Thymeleaf 来渲染分页的页面。可以通过 Thymeleaf 的循环和条件语句来遍历查询结果,并显示分页的页码和链接。例如:
```html
<div th:fragment="pagination">
<ul class="pagination">
<li th:class="${page.firstPage} ? disabled : ''">
<a th:if="${!page.firstPage}" th:href="@{${url}(page=1)}"><<</a>
</li>
<li th:class="${page.firstPage} ? disabled : ''">
<a th:if="${!page.firstPage}" th:href="@{${url}(page=${page.number - 1})}"><</a>
</li>
<li th:class="${page.lastPage} ? disabled : ''">
<a th:if="${!page.lastPage}" th:href="@{${url}(page=${page.number + 1})}">></a>
</li>
<li th:class="${page.lastPage} ? disabled : ''">
<a th:if="${!page.lastPage}" th:href="@{${url}(page=${page.totalPages})}">>></a>
</li>
</ul>
</div>
```
3. 在控制器中,根据用户的请求参数来获取指定页码的数据,并将分页结果传递给 Thymeleaf 模板进行渲染。例如:
```java
@GetMapping("/users")
public String listUsers(@RequestParam(defaultValue = "0") int page, Model model) {
Page<User> users = userRepository.findAll(PageRequest.of(page, 10));
model.addAttribute("users", users);
model.addAttribute("url", "/users");
return "users";
}
```
通过以上步骤,就可以在 Spring Boot 的前后端不分离项目中实现分页功能了。