hibernate分页

1. 当前页码的表单参数 listuser.do?page=2

  同时转换成一个 int 类型的页码变量

  int currentPage = Integer.parseInt(

  request.getParameter("page");// 当前页

  2. 下一页 listuser.do?page=${currentPage+1}

  上一页 listuser.do?page=${currentPage-1}

  3. 一页显示多少数据

  int pageSize = 5;//每页显示的数据数

  4. 总页数 totalPage

  1) 先从数据库取得总记录数

  dao.UserDAO#getUserTotalCount()

  int totalCount = executeQuery("select count(*) from Users");

  2) 根据一页的数据类计算出总页数

  dao.UserManager#getTotalPage(int pageSize)

  // 得到页面总数

  int totalPageCount = ((totalCount + pageSize) - 1) / pageSize;

  if(totalPageCount == 0) {

  totalPageCount = 1;

  }

  5. 从数据库里把第currentPage页的数据读取出来(Hibernate), DAO 层的代码

  dao.UserDAO#findPagedAll(int currentPage, int pageSize)

  两个参数: currentPage 当前页(从1开始的)

  pageSize 取多少数据

  String queryString = "from User";

  Query queryObject = getSession()。createQuery(queryString);

  queryObject.setFirstResult((currentPage - 1) * pageSize);

  queryObject.setMaxResults(pageSize);

  List result = queryObject.list();

  时间:2011-09-18 -

  6. 在前台显示上下页的链接,并根据总页数的上下限来避免让用户跳到第-1页或者比最大页数还大的页码哪里

  <c:if test="${currentPage > 1}">

  [ 上一页的链接 ]

  </c:if>

  <c:if test="${currentPage <= 1}">

  [ 上一页的文本 ]

  </c:if>

  7. 通过 forEach 来显示数据

  <c:forEach items="${users}" var="user" >

  ${user.id}

  ${user.username}

  <c:/forEach>

  8. 通过下拉菜单来跳转页面

  转到

  <script>

  // 页面跳转函数

  // 参数: 包含网址的选择框(SELECT元素)

  function jumpPage(select) {

  var newUrl = "/hibernate_page/index.jsp?page=" + select.value;

  //alert(newUrl);

  document.location = newUrl;

  }

  </script>

  <!-- 输出 HTML SELECT 元素, 并选中当前页面编码 -->

  <select onchange='jumpPage(this);'>

  <option value="1" selected>1页</option>

  <option value="2" >2页</option>

  </select>

原文地址:http://java.chinaitlab.com/Hibernate/916947.html

猜你喜欢

转载自ydcworld.iteye.com/blog/1807779