Springboot整合Thymeleaf-分页查询
在Spring Boot整合Thymeleaf实现分页查询的基本步骤如下:
- 添加依赖:确保
spring-boot-starter-web
和thymeleaf
在你的pom.xml
中。 - 配置分页插件:在Spring Boot配置类中添加
PageHelper
的配置。 - 创建实体和映射接口:创建对应数据库表的实体类和MyBatis映射接口。
- 创建Service和实现:编写分页查询的服务方法。
- 控制器中添加方法:编写处理请求的控制器方法,并调用Service获取数据。
- 创建Thymeleaf页面:编写HTML页面,使用Thymeleaf语法展示数据和分页信息。
以下是一个简化的示例代码:
// 引导类中配置PageHelper
@Bean
public PageInterceptor pageInterceptor(){
PageInterceptor pageInterceptor = new PageInterceptor();
Properties properties = new Properties();
properties.setProperty("helperDialect", "mysql");
pageInterceptor.setProperties(properties);
return pageInterceptor;
}
// 映射接口
public interface YourEntityMapper {
List<YourEntity> selectByPage(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);
}
// Service接口
public interface YourEntityService {
PageInfo<YourEntity> findPage(int pageNum, int pageSize);
}
// Service实现
@Service
public class YourEntityServiceImpl implements YourEntityService {
@Autowired
private YourEntityMapper yourEntityMapper;
@Override
public PageInfo<YourEntity> findPage(int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<YourEntity> list = yourEntityMapper.selectByPage(pageNum, pageSize);
return new PageInfo<>(list);
}
}
// 控制器
@Controller
public class YourEntityController {
@Autowired
private YourEntityService yourEntityService;
@GetMapping("/yourEntityList")
public String list(@RequestParam(defaultValue = "1") int pageNum, Model model) {
PageInfo<YourEntity> pageInfo = yourEntityService.findPage(pageNum, 10);
model.addAttribute("pageInfo", pageInfo);
return "yourEntityList";
}
}
// Thymeleaf页面 (yourEntityList.html)
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<!-- 省略头部信息 -->
</head>
<body>
<div>
<table>
<!-- 表格头部 -->
<tr>
<th>列1</th>
<th>列2</th>
<!-- 更多列 -->
</tr>
<!-- 表格数据 -->
<tr th:each="entity : ${pageInfo.list}">
<td th:text="${entity.field1}">数据1</td>
<td th:text="${entity.field2}">数据2</td>
<!-- 更多数据列 -->
</tr>
</table>
<!-- 分页导航 -->
<nav aria-label="Page navigation">
<ul class="pagination">
<li class="page-item" th:if="${pageInfo.hasPrevio
评论已关闭