MCV中实现分页的pageBean

匿名 (未验证) 提交于 2019-12-02 23:59:01

在domain包下创建一个PageBean类:

	//当前页的页码pageNum pageNum     private int pageNum;     //当前页大小pageSize pageSize     private int pageSize;     //总数据个数totalSize totalsize     private long totalSize;     //总页数pageCount page Count     private int pageCount;     //当前页数据List<T> data  List<T> data     private List<T> data; //----------pagebean的5个基本属性 //----------给此类添加构造方法和getter,setter public PageBean() {     }      public PageBean(int pageNum, int pageSize, long totalSize, List<T> data) {         this.pageNum = pageNum;         this.pageSize = pageSize;         this.totalSize = totalSize;         this.data = data;         pageCount= (int) (totalSize%pageSize==0?totalSize/pageSize:totalSize/pageSize+1);//注意此处总页数不变的所以直接计算     }      public int getPageNum() {         return pageNum;     }      public void setPageNum(int pageNum) {         this.pageNum = pageNum;     }      public int getPageSize() {         return pageSize;     }      public void setPageSize(int pageSize) {         this.pageSize = pageSize;     }      public long getTotalSize() {         return totalSize;     }      public void setTotalSize(long totalSize) {         this.totalSize = totalSize;     }      public int getPageCount() {         return pageCount;     }      public void setPageCount(int pageCount) {         this.pageCount = pageCount;     }      public List<T> getData() {         return data;     }      public void setData(List<T> data) {         this.data = data;     }  

在dao层中添加查找方法并实现:

 //----------在接口中的方法 	User finbyid(int id);     List<User> findByPage(int pageNum,int pageSize);     long getCount();   //----------实现  @Override     public User finbyid(int id) {         QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());          try {             return qr.query("select * from empno where id=? ", new BeanHandler<User>(User.class),id);         } catch (SQLException e) {             e.printStackTrace();             throw new RuntimeException("按照id查找失败");         }     }      @Override     public List<User> findByPage(int pageNum, int pageSize) {         QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());          try {             return qr.query("select * from empno order by id limit ?,?", new BeanListHandler<User>(User.class),(pageNum-1)*pageSize,pageSize);         } catch (SQLException e) {             e.printStackTrace();             throw new RuntimeException("分页查询失败");         }     }      @Override     public long getCount() {         QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());          try {             return qr.query("select count(*) from empno", new ScalarHandler<>());         } catch (SQLException e) {             e.printStackTrace();             throw new RuntimeException("查询分页时个数失败");         }     }      

在service层包装:

//-----------在接口中的方法 	PageBean<User> findPage(int pageNum,int pageSize);     User queryByid(int id);    //-----------实现 	@Override  	public PageBean<User> findPage(int pageNum, int pageSize) {         List<User> data = userDao.findByPage(pageNum, pageSize);         long totalSize = userDao.getCount();         PageBean<User> pageBean = new PageBean<>(pageNum, 						pageSize, totalSize, data);          return pageBean;     }      @Override     public User queryByid(int id) {         return userDao.finbyid(id);     }   

最后在Servlet中调用:

 		request.setCharacterEncoding("utf-8");         response.setContentType("text/html;charset=utf-8");         //转码防止页面乱码         String pageNum = request.getParameter("pageNum");         String pageSize = request.getParameter("pageSize"); 		//获取页码和页大小         int pn=1;         int ps=5;          try {             if (!StringUtils.isEmpty(pageNum)){                 pn=Integer.parseInt(pageNum);                 if (pn<1){                     pn=1;                 }             }             if (!StringUtils.isEmpty(pageSize)){                 ps=Integer.parseInt(pageSize);                 if (ps<1){                     ps=5;                 }             }         } catch (NumberFormatException e) {             e.printStackTrace();             throw new RuntimeException("分页初始化失败");         }         //初始化页码和页大小         UserService userService = new UserServiceImpl();         PageBean<User> userPageBean = userService.findPage(pn, ps);         request.setAttribute("userlist", userPageBean);         request.getRequestDispatcher("/userlist.jsp").forward(request, response); 

jsp页面输出:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <html> <head>     <title>这个是数据库</title> </head> <body>     <h2>管理数据增删改查冲鸭!!!!!!!</h2>     <table border="1" align="center">         <tr>             <th>id</th>             <th>姓名</th>             <th>年龄</th>         </tr>         <c:forEach var="list" items="${userlist.data}">             <tr>                 <td>${list.id}</td>                 <td>${list.name}</td>                 <td>${list.age}</td>                 <td>                     <a href="${pageContext.request.contextPath}/useredit?id=${list.id}">更新</a>                     <a href="${pageContext.request.contextPath}/userdel?id=${list.id}" onclick="return confirm('确定要删除吗?')">删除</a>                 </td>             </tr>         </c:forEach>         <tr>             <td><a href="${pageContext.request.contextPath}/useradd.jsp">添加</a> </td>         </tr>         <tr>             <td colspan="4"  style="text-align: center;">                 <div>                     <a href="${pageContext.request.contextPath}/userlist?pageNum=1&pageSize=${userlist.pageSize}">首页</a>                     <a href="${pageContext.request.contextPath}/userlist?pageNum=${userlist.pageNum-1}&pageSize=${userlist.pageSize}">上一页</a>                     <a href="${pageContext.request.contextPath}/userlist?pageNum=${userlist.pageNum+1}&pageSize=${userlist.pageSize}">下一页</a>                     <a href="${pageContext.request.contextPath}/userlist?pageNum=${userlist.pageCount}&pageSize=${userlist.pageSize}">尾页</a>                 </div>             </td>         </tr>     </table> </body>  
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!