1.创建Page实体类
public class Page { private int pageSize; //页容量 private int totalPage; //总页数 private int currentPage; //当前页 private boolean isFirstPage;//是否第一页 private boolean isLastPage; //是否最后一页 private boolean hasPreviousPage; //是否有上一页 private boolean hasNextPage; //是否有下一页 private List list; //数据集合 public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getRowCount() { return rowCount; } public void setRowCount(int rowCount) { this.rowCount = rowCount; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public boolean isFirstPage() { return isFirstPage; } public void setFirstPage(boolean isFirstPage) { this.isFirstPage = isFirstPage; } public boolean isLastPage() { return isLastPage; } public void setLastPage(boolean isLastPage) { this.isLastPage = isLastPage; } public boolean isHasPreviousPage() { return hasPreviousPage; } public void setHasPreviousPage(boolean hasPreviousPage) { this.hasPreviousPage = hasPreviousPage; } public boolean isHasNextPage() { return hasNextPage; } public void setHasNextPage(boolean hasNextPage) { this.hasNextPage = hasNextPage; } public List getList() { return list; } public void setList(List list) { this.list = list; } }
2.创建IPageDao接口
public interface IPageDao { void init(int start, int pageSize,String tableName); //Page初始化 void setPageSize(int pageSize); //1.设置页容量 void setTotalPage(String tableName); //2.设置总页数 void setCurrentPage(); //3.设置当前页 void setIfFirstAndIfLast(); //4.设置是否首尾页 void setHasPreviousPageAndLastPage(); //5.设置是否有上下页 void setList(String tableName); //6.设置总记录数 Page getPage(); //获取Page对象 }
3.创建PageDaoImpl实现类
public class PageDaoImpl implements IPageDao{ private ProjectDao projectDao ; private int start; private Page page; /** * Page对象初始化 * @param start 传入的当前页 * @param pageSize 传入的页容量 * @param tableName 传入的表名 */ public void init(int start,int pageSize,String tableName) { this.start = start; page = new Page(); projectDao = new ProjectDao(); setPageSize(pageSize); setTotalPage(tableName); setCurrentPage(); setIfFirstAndIfLast(); setHasPreviousPageAndLastPage(); setList(tableName); } /** * 1.设置页容量:用于设置总页数 */ public void setPageSize(int pageSize) { if (pageSize <= 0) { page.setPageSize(10); } else { page.setPageSize(pageSize); } } /** * 2.设置总页数:在判断当前页是否大于总页数时用到 */ public void setTotalPage(String tableName) { int rowCount = 0; if (tableName.equals("items")) { rowCount = projectDao.getItemsRowCount(); } else if (tableName.equals("application")) { rowCount = projectDao.getAppsRowCount(); } int pageSize = page.getPageSize(); if (rowCount%pageSize > 0) { page.setTotalPage(rowCount/pageSize + 1); } else { page.setTotalPage(rowCount/pageSize); } } /** * 3.设置当前页:在之后的上下页和首尾页都需要用到 */ public void setCurrentPage() { if (start < 1) { page.setCurrentPage(1); } else if (start > page.getTotalPage()) { page.setCurrentPage(page.getTotalPage()); } else { page.setCurrentPage(start); } } /** * 4.设置是否首页或尾页 */ public void setIfFirstAndIfLast() { page.setFirstPage(page.getCurrentPage() > 1 ? false:true); page.setLastPage(page.getCurrentPage() < page.getTotalPage() ? false:true); } /** * 5.设置是否有上一页和下一页 */ public void setHasPreviousPageAndLastPage() { page.setHasPreviousPage(page.getCurrentPage() == 1 ? false:true); page.setHasNextPage(page.getCurrentPage() == page.getTotalPage() ? false:true); } /** * 6.设置数据 */ public void setList(String tableName) { int currentPage = page.getCurrentPage(); int pageSize = page.getPageSize(); int startIndex = pageSize * (currentPage - 1); if (tableName.equals("items")) { page.setList(projectDao.getItemsByPage(startIndex, pageSize)); } else if (tableName.equals("application")) { page.setList(projectDao.getAppsByPage(startIndex, pageSize)); } } public Page getPage() { return page; } }
4.创建通过数据库获取数据的方法
/** * 通过分页获取财政专项 * @param startIndex * @param pageSize * @return */ public List getItemsByPage(int startIndex, int pageSize) { Session s = null; List list = null; try { s = HibernateUtil.getSession(); s.beginTransaction(); Query query = s.createSQLQuery("select i.name,p.fileno from items i,policy p where i.isleaf = 1 and i.defaultpolicyid = p.id"); query.setFirstResult(startIndex); query.setMaxResults(pageSize); list = query.list(); } catch (Throwable e) { log.error(e.toString()); HibernateUtil.endSession(s); } finally { HibernateUtil.endSession(s); } return list; } /** * 获取财政专项总记录树 * @return */ public int getItemsRowCount() { int rowCount = 0; Session s = null; try { s = HibernateUtil.getSession(); s.beginTransaction(); Query query = s.createSQLQuery("select i.name,p.fileno from items i,policy p where i.isleaf = 1 and i.defaultpolicyid = p.id"); List list = query.list(); if (list != null) { rowCount = list.size(); } } catch (Throwable e) { log.error(e.toString()); HibernateUtil.endSession(s); } finally { HibernateUtil.endSession(s); } return rowCount; } /** * 通过分页获取项目信息 * @param startIndex * @param pageSize * @return */ public List getAppsByPage(int startIndex, int pageSize) { Session s = null; List list = null; try { s = HibernateUtil.getSession(); s.beginTransaction(); Query query = s.createSQLQuery("select e.qymc,a.enpname,a.money,a.approvaldate from application a,enterprise e where stepid = 3 and status = 0 and a.swdjzh = e.swdjzh"); query.setFirstResult(startIndex); query.setMaxResults(pageSize); list = query.list(); } catch (Throwable e) { log.error(e.toString()); HibernateUtil.endSession(s); } finally { HibernateUtil.endSession(s); } return list; } /** * 获取公示企业项目总记录数 * @return */ public int getAppsRowCount() { Session s = null; int rowCount = 0; try { s = HibernateUtil.getSession(); s.beginTransaction(); Query query = s.createSQLQuery("select e.qymc,a.enpname,a.money,a.approvaldate from application a,enterprise e where stepid = 3 and status = 0 and a.swdjzh = e.swdjzh"); List list = query.list(); if (list != null) { rowCount = list.size(); } } catch (Throwable e) { log.error(e.toString()); HibernateUtil.endSession(s); } finally { HibernateUtil.endSession(s); } return rowCount; }
5.创建PageServlet
public class PageServlet extends HttpServlet { private static final long serialVersionUID = 719461503837296828L; private IPageDao pageDao; protected void doGet(HttpServletRequest request, HttpServletResponse respond) throws ServletException, IOException { doPost(request,respond); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter("doType"); if (action.equals("page")) { String tableName = request.getParameter("table"); int start = Integer.valueOf(request.getParameter("page")); pageDao = new PageDaoImpl(); pageDao.init(start, 0, tableName);//Page对象初始化 Page page = pageDao.getPage();//获取Page对象 request.setAttribute("currentPage", page.getCurrentPage()); request.setAttribute("totalPages", page.getTotalPage()); request.setAttribute("hasPrevious", page.isHasPreviousPage()); request.setAttribute("hasNext", page.isHasNextPage()); request.setAttribute("isFirst", page.isFirstPage()); request.setAttribute("isLast", page.isLastPage()); request.setAttribute("list", page.getList()); if (tableName.equals("items")) { request.getRequestDispatcher("frontShow/itemShow.jsp").forward(request, response); } else if (tableName.equals("application")) { request.getRequestDispatcher("frontShow/enpriseShow.jsp").forward(request, response); } } } }
6.页面显示
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/frontShow.css"/> <script type="text/javascript" src="<%=request.getContextPath()%>/bootstrap/jquery-1.11.1.min.js"></script> <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/bootstrap/bootstrap-theme.min.css" /> <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/bootstrap/bootstrap.min.css" /> <script type="text/javascript" src="<%=request.getContextPath()%>/bootstrap/bootstrap.min.js"></script> <script type="text/javascript"> </script> <title>企业公示项目</title> </head> <body background="<%=request.getContextPath()%>/images/b1.jpg" class="background"> <div style="text-align:center"> <img alt="财政专项" src="<%=request.getContextPath()%>/images/front.jpg" /> </div> <div class="center"> <div class="divBoder div1"> <img alt="企业项目申报公示" src="<%=request.getContextPath()%>/images/qiyegongshi.png"> <hr/> <center><a href="<%=request.getContextPath()%>/index.jsp"><img alt="返回首页" src="<%=request.getContextPath()%>/images/FrontPage.png"></a></center> </div> <div class="divBoder div2"> <div> <br/> <table> <tr class="trTitle"> <td width="50px;"></td> <td width="120px;">企业名称<hr class="hr"/></td> <td width="450px;">申报项目名称<hr class="hr"/></td> <td width="120px;">申报金额<hr class="hr"/></td> <td>申报日期<hr class="hr"/></td> </tr> <c:forEach items="${list}" var="item"> <tr> <td width="50px;"></td> <td width="120px;"><strong>${item[0]}</strong><hr/></td> <td width="450px;">${item[1]}<hr/></td> <td width="120px;">${item[2]}元<hr/></td> <td>${item[3]}<hr/></td> </tr> </c:forEach> </table> </div> <center> <div> <span> <c:choose> <c:when test="${isFirst}"> 首页 </c:when> <c:otherwise> <a href="itemShow.page?doType=page&&page=1&&table=application">首页</a> </c:otherwise> </c:choose> </span> <span> <c:choose> <c:when test="${!hasPrevious}"> 上一页 </c:when> <c:otherwise> <a href="itemShow.page?doType=page&&page=${currentPage-1}&&table=application">上一页</a> </c:otherwise> </c:choose> </span> <c:forEach var="index" begin="1" end="${totalPages}" step="1"> <c:choose> <c:when test="${index==currentPage}"> <span class="currentPage">${index}</span> </c:when> <c:otherwise> <a href="itemShow.page?doType=page&&page=${index}&&table=application">${index}</a> </c:otherwise> </c:choose> </c:forEach> <span> <c:if test="${!hasNext}"> 下一页 </c:if> <c:if test="${hasNext}"> <a href="itemShow.page?doType=page&&page=${currentPage+1}&&table=application">下一页</a> </c:if> </span> <span> <c:if test="${isLast}"> 尾页 </c:if> <c:if test="${!isLast}"> <a href="itemShow.page?doType=page&&page=${totalPages}&&table=application">尾页</a> </c:if> </span> </div> </center> </div> </div> </body> </html>
7.页面
相关推荐
STRUTS HIBERNATE 实现简单分页 利用STRUTS HIBERNATE 实现的简单分页
ssh框架模板例子代码,hibernate实现简单的分页技术。
hibernate通用分页组件 简单好用
实现简单的分页功能,用Struts 和hibernate实现
java 实现的一个简单的hibernate分页类 可以设置,从某一条开始取、显示的条数 不依赖struts spring
二、Hibernate可以使用Query.setMaxResults方法简单地设置需要查询的最大结果集。 然后Hibernate会自动根据所设置的数据库方言翻译成相应的SQL语句提交给数据库。比如如果数据库是Oracle,SQL Server等,则翻译为...
初学spring boot 的一些简单列子
hibernate sturts实现通用分页,spring自己可以加进去!代码很简单!
分页显示一直是web开发中一大烦琐的难题,传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码,那样做分页可能简单一点,但当把网站分层开发后,分页就比较困难了,下面是我做Spring+Hibernate+...
hibernate和struts完美应用和分页演示示例 <br>此工程是hibernate和struts完美应用和分页演示示例。 <br>特点: 一、使用MS SERVER 2000的pubs数据库,并写了... 三、演示了数据查询的分页功能(较简单)。
整合ssh的分页,简单易用,使用hibernate的分页,封装了分页组件,轻松调用
用三大框架整合实现分页,附加可用,逻辑简单适合初学者
struts2 hibernate 简单网上书店 课程设计 异步分页 同步分页
最近频繁用到了分页,所以研究了一下JDBC的分页方案,参考了一些网上的思想,写了下面这个文章。可以很容易转到hibernate上。
说明: 一、含演示数据库建立脚本(较简单) 二、使用Struts、Hibernate和display超简单的实现了分页,你不用在页面上再写很多和很多判断,简单到只需要几行语句: ... 三、由于使用了display,所以自动实现了...
简单实现struts2+hibernate分业
一个简单的hibernate+struts2分页功能 希望对你有所帮助
jsp 新闻管理系统毕业设计 代码简单易懂 并且还有大量的注释
100万的数据分页的话大概是5秒,分页的方法都是写在后台的,调用也是比较简单的,数据库的话也是比较简单的,里面有个TestDao.java的文件能够自动导入比较多的数据
分页显示一直是web开发中一大烦琐的难题,传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码,那样做分页可能简单一点,但当把网站分层开发后,分页就比较困难了,下面Spring+Hibernate+Struts2...