使用th:each时,用常规惯性思维遍历出错
controller返回的不是一个实体对象,所以不能直接遍历,要调用pageinfo的list方法遍历
正确的遍历写法:
最后补充一下pagehelper代码:
controller:
//分页查询数据
@GetMapping("/findall")
public String usermanage(Model model,
@RequestParam(required = false,defaultValue="1",value="pageNum")Integer pageNum,
@RequestParam(defaultValue="5",value="pageSize")Integer pageSize){
//为了程序的严谨性,判断非空:
if(pageNum == null){
pageNum = 1; //设置默认当前页
}
if(pageNum <= 0){
pageNum = 1;
}
if(pageSize == null){
pageSize = 5; //设置默认每页显示的数据数
}
System.out.println("当前页是:"+pageNum+"显示条数是:"+pageSize);
//1.引入分页插件,pageNum是第几页,pageSize是每页显示多少条,默认查询总数count
PageHelper.startPage(pageNum,pageSize);
//2.紧跟的查询就是一个分页查询-必须紧跟.后面的其他查询不会被分页,除非再次调用PageHelper.startPage
try {
List<User> all = userMapper.findAll();
System.out.println("分页数据:"+all);
//3.使用PageInfo包装查询后的结果,5是连续显示的条数,结果list类型是Page<E>
PageInfo<User> userPageInfo = new PageInfo<User>(all, pageSize);
//4.使用model/map/modelandview等带回前端
model.addAttribute("guys",userPageInfo);
}finally {
PageHelper.clearPage(); //清理 ThreadLocal 存储的分页参数,保证线程安全
}
//5.设置返回的jsp/html等前端页面
// thymeleaf默认就会拼串classpath:/templates/xxxx.html
return "list";
}
html:
<!-- 分页-->
<!--显示分页信息-->
<div class="modal-footer no-margin-top">
<div class="col-md-6">
当前第 [[${guys.pageNum}]]页,共 [[${guys.pages}]] 页.一共 [[${guys.total}]] 条记录
</div>
<ul class="pagination pull-right no-margin">
<li th:if="${guys.hasPreviousPage}">
<a th:href="'/usermanage?pageNum=1'">首页</a>
</li>
<li class="prev" th:if="${guys.hasPreviousPage}">
<a th:href="'/usermanage?pageNum='+${guys.prePage}">
<i class="ace-icon fa fa-angle-double-left"></i>
</a>
</li>
<!--遍历条数-->
<li th:each="nav:${guys.navigatepageNums}">
<a th:href="'/usermanage?pageNum='+${nav}" th:text="${nav}" th:if="${nav != guys.pageNum}"></a>
<span style="font-weight: bold;background: #6faed9;" th:if="${nav == guys.pageNum}" th:text="${nav}" ></span>
</li>
<li class="next" th:if="${guys.hasNextPage}">
<a th:href="'/usermanage?pageNum='+${guys.nextPage}">
<i class="ace-icon fa fa-angle-double-right"></i>
</a>
</li>
<li>
<a th:href="'/usermanage?pageNum='+${guys.pages}">尾页</a>
</li>
</ul>
</div>
<div>当前页号:<span th:text="${guys.pageNum}"></span></div>
<div>每页条数:<span th:text="${guys.pageSize}"></span></div>
<div>起始行号:<span th:text="${guys.startRow}"></span></div>
<div>终止行号:<span th:text="${guys.endRow}"></span></div>
<div>总结果数:<span th:text="${guys.total}"></span></div>
<div>总页数:<span th:text="${guys.pages}"></span></div>
<hr />
<div>是否为第一页:<span th:text="${guys.isFirstPage}"></span></div>
<div>是否为最后一页:<span th:text="${guys.isLastPage}"></span></div>
<div>是否有前一页:<span th:text="${guys.hasPreviousPage}"></span></div>
<div>是否有下一页:<span th:text="${guys.hasNextPage}"></span></div>