环境:springboot+mybatis+maven+yaml配置+前端用thymleaf模板(其实环境不太一样也可以,我觉得我这种方法很简单)
1.pom.xml添加依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
2.配置application.yaml
#配置分页
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
3.controller写分页代码
- currentPage是当前页,pageSize是当前页的限制大小
- List<Type> list = typeService.listPage();是从数据库中获取所有的数据行,这个时候还没有分页。
- 然后如果list!=null。这个时候就把list放到PageInfo类型的变量中,然后才从PageInfo中获得list,就完成了分页。
- 把list返回前端。
@RequestMapping("/type")
public ModelAndView getTypes(@RequestParam(defaultValue = "1") Integer currentPage,
@RequestParam(defaultValue = "1") Integer pageSize){
ModelAndView model = new ModelAndView();
//1.开启分页
PageHelper.startPage(currentPage,pageSize);
List<Type> list = typeService.listPage();
//封装list到PageInfo对象中,自动分页
PageInfo<Type> typePageInfo = null;
if(list!=null){
typePageInfo = new PageInfo<>(list);
list = typePageInfo.getList();
}
model.addObject("list",list);
model.setViewName("admin/types");
return model;
}
4.前端
<table >
<thead>
<tr><th>名称</th>
<th>操作</th>
</tr></thead>
<tbody>
<tr th:each="temp: ${list}">
<td th:text="${temp.name}"></td>
<td>
<a href="#" class="ui mini teal basic button">编辑</a>
<a href="#" class="ui mini red basic button">删除</a>
</td>
</tr>
</tbody>
</table>