这里项目是springboot,mybatis,thymeleaf,实现我自制的商城项目后台页面的分页功能。
参考我之前总结的分页,简单的处理一下就可以了
上代码
首先写一个超链接跳转到controller层的方法
<a href="/demo/page" target="iframe">商品管理</a>
然后写后台controller层代码
/**
* 后台商品页面分页
*/
@RequestMapping("/page")
public String page(String pageNumber,Model model){
String spPage=pageNumber;
//设置每页条数
int pageSize=5;
//页数
int pageNo=0;
if(spPage==null){
pageNo=1;
}else {
pageNo = Integer.valueOf(spPage);
if (pageNo < 1) {
pageNo = 1;
}
}
//设置最大页数
int totalCount=0;
int count=selectService.getCount(phone);
if(count>0){
totalCount=count;
}
int maxPage=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;
if(pageNo>maxPage){
pageNo=maxPage;
}
tempPageNo=(pageNo-1)*pageSize;
//计算总数量
//分页查询
Map map=new HashMap();
map.put("pageNo",tempPageNo);
map.put("pageSize",pageSize);
map.put("phone",phone);
List<Map> list=selectService.pageList(map);
//最后把信息放入model转发到页面把信息带过去
model.addAttribute("list",list);
model.addAttribute("pageNo",pageNo);
model.addAttribute("totalCount",totalCount);
model.addAttribute("maxPage",maxPage);
return "back/shangpin";
}
Mapper层的代码
/**
* 商品查询总条数
*/
@Select(value = "select count(*) as cou from shangpin group by sellerAccount having sellerAccount>=1 and sellerAccount=#{phone};")
int getCount(String phone);
/**
* 商品分页查询
*/
@Select(value = "select * from shangpin where sellerAccount=#{phone} limit #{pageNo},#{pageSize}")
List<Map> pageList(Map map);
需要注意的是,使用的是thymeleaf,则在最后把信息放入的容器只能是model。最后把所有的信息都转发到商品管理页面。
商品管理html页面简单写一下,其他没关系的都省略了,只干挑头的。
<a th:href="@{/demo/page?pageNumber=1}">首页</a>
<a th:href="@{'/demo/page?pageNumber='+${pageNo-1}}">上一页</a>
<a th:href="@{'/demo/page?pageNumber='+${pageNo+1}}">下一页</a>
<a th:href="@{'/demo/page?pageNumber='+${maxPage}}">尾页</a>
然后分页就完成了
但是上面的只是一个页面,如果是多个页面的话,代码就会重复,因此我想找时间再把上面的分页封装起来,以后使用时可以直接调用即可,哈哈。有问题可以留言,谢谢!