初学Springmvc+mybatis实现分页

xiaoxiao2025-09-19  324

转自:https://blog.csdn.net/qq_34059693/article/details/78491513 首先建一个分页的实体类:

public class Page implements Serializable{ private static final long serialVersionUID=1L; private int pageNow=1; //当前也是 private int pageSize=8; //每页显示的数量 private int totalCount; //总记录数 private int totalPageCount; //总页数 private int startPos; //开始位置,从0开始 private boolean hasFrist; //是否有首页 private boolean hasPre; //是否有前一页 private boolean hasNext; //是否有后一页 private boolean hasLast; //是否有尾页 /** * 通过构造函数,传入总记录数和当前页 * @param pageNow * @param totalCount */ public Page(int pageNow, int totalCount) { super(); this.pageNow = pageNow; this.totalCount = totalCount; } //获取总页数 public int getTotalPageCount() { totalPageCount=getTotalCount()/getPageSize(); return (totalCount/pageSize==0) ? totalPageCount:totalPageCount+1; } public void setTotalPageCount(int totalPageCount) { this.totalPageCount = totalPageCount; } public int getPageNow() { return pageNow; } public void setPageNow(int pageNow) { this.pageNow = pageNow; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getTotalCount() { return totalCount; } public void setTotalCount(int totalCount) { this.totalCount = totalCount; } //取得选择记录的初始位置 public int getStartPos() { return (pageNow-1)*pageSize; } public void setStartPos(int startPos) { this.startPos = startPos; } //判断是否有第一页 public boolean isHasFrist() { return (pageNow==1) ? false:true; } public void setHasFrist(boolean hasFrist) { this.hasFrist = hasFrist; } //如果有首页就有前一页 public boolean isHasPre() { return isHasFrist() ? true:false; } public void setHasPre(boolean hasPre) { this.hasPre = hasPre; } //如果有尾页就有下一页 public boolean isHasNext() { return isHasNext() ? true:false; } public void setHasNext(boolean hasNext) { this.hasNext = hasNext; } //判断是否有尾页 public boolean isHasLast() { return (pageNow==getTotalCount()) ? false:true; } public void setHasLast(boolean hasLast) { this.hasLast = hasLast; }

实体类每个属性的意思都加了注释 再到mapper层写分页sql

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.sdl.mapper.NewsMapper"> <select id="findNewsPage" resultType="News"> select * from news limit #{0},#{1} </select> <select id="findNewCont" resultType="int"> select COUNT(*) from news </select> </mapper>

第二条sql语句是记录总数量 control层的代码

private NewsService newsService; @RequestMapping("/findNewsPage.service") public String showNewsInfo(Model model,HttpServletRequest request){ //获取当前页数 String pageNow=request.getParameter("pageNow"); //获取总页数 int totalCount=(int)newsService.findNewCont(); Page page=null; List<News> list=new ArrayList<News>(); if (pageNow!=null) { page=new Page(Integer.parseInt(pageNow), totalCount); list=this.newsService.findNewsPage(page.getStartPos(),page.getPageSize()); }else { page=new Page(1, totalCount); list=this.newsService.findNewsPage(page.getStartPos(),page.getPageSize()); } model.addAttribute("list", list); model.addAttribute("page", page); return "news.jsp"; }

页面的代码

div class="pager"> <font size="2">共 ${page.totalPageCount} 页</font> <font size="2">第 ${page.pageNow} 页</font> <a href="findNewsPage.service?pageNow=1">首页</a> <c:choose> <c:when test="${page.pageNow - 1 > 0}"> <a href="findNewsPage.service?pageNow=${page.pageNow - 1}">上一页</a> </c:when> <c:when test="${page.pageNow - 1 <= 0}"> <a href="findNewsPage.service?pageNow=1">上一页</a> </c:when> </c:choose> <c:choose> <c:when test="${page.totalPageCount==0}"> <a href="findNewsPage.service?pageNow=${page.pageNow}">下一页</a> </c:when> <c:when test="${page.pageNow + 1 < page.totalPageCount}"> <a href="findNewsPage.service?pageNow=${page.pageNow + 1}">下一页</a> </c:when> <c:when test="${page.pageNow + 1 >= page.totalPageCount}"> <a href="findNewsPage.service?pageNow=${page.totalPageCount}">下一页</a> </c:when> </c:choose> <c:choose> <c:when test="${page.totalPageCount==0}"> <a href="findNewsPage.service?pageNow=${page.pageNow}">尾页</a> </c:when> <c:otherwise> <a href="findNewsPage.service?pageNow=${page.totalPageCount}">尾页</a> </c:otherwise> </c:choose> </div>
转载请注明原文地址: https://www.6miu.com/read-5036617.html

最新回复(0)