浏览 9351 次
锁定老帖子 主题:分享一个分页算法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-07
* 分页算法 */ package cn.eshore.user.util; public class PageBean { private int currentPage = 1;// 当前页数 public int totalPages = 0;// 总页数 private int pageSize = 0;// 每页显示数 private int totalRows = 0;// 总数据数 private int startNum = 0;// 开始记录 private int nextPage = 0;// 下一页 private int previousPage = 0;// 上一页 private boolean hasNextPage = false;// 是否有下一页 private boolean hasPreviousPage = false;// 是否有前一页 public PageBean(int pageSize, int currentPage, int totalRows) { this.pageSize = pageSize; this.currentPage = currentPage; this.totalRows = totalRows; if ((totalRows % pageSize) == 0) { totalPages = totalRows / pageSize; } else { totalPages = totalRows / pageSize + 1; } if (currentPage >= totalPages) { hasNextPage = false; currentPage = totalPages; } else { hasNextPage = true; } if (currentPage <= 1) { hasPreviousPage = false; currentPage = 1; } else { hasPreviousPage = true; } startNum = (currentPage - 1) * pageSize; nextPage = currentPage + 1; if (nextPage >= totalPages) { nextPage = totalPages; } previousPage = currentPage - 1; if (previousPage <= 1) { previousPage = 1; } } public boolean isHasNextPage() { return hasNextPage; } public boolean isHasPreviousPage() { return hasPreviousPage; } /** * @return the nextPage */ public int getNextPage() { return nextPage; } /** * @param nextPage * the nextPage to set */ public void setNextPage(int nextPage) { this.nextPage = nextPage; } /** * @return the previousPage */ public int getPreviousPage() { return previousPage; } /** * @param previousPage * the previousPage to set */ public void setPreviousPage(int previousPage) { this.previousPage = previousPage; } /** * @return the currentPage */ public int getCurrentPage() { return currentPage; } /** * @param currentPage * the currentPage to set */ public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } /** * @return the pageSize */ public int getPageSize() { return pageSize; } /** * @param pageSize * the pageSize to set */ public void setPageSize(int pageSize) { this.pageSize = pageSize; } /** * @return the totalPages */ public int getTotalPages() { return totalPages; } /** * @param totalPages * the totalPages to set */ public void setTotalPages(int totalPages) { this.totalPages = totalPages; } /** * @return the totalRows */ public int getTotalRows() { return totalRows; } /** * @param totalRows * the totalRows to set */ public void setTotalRows(int totalRows) { this.totalRows = totalRows; } /** * @param hasNextPage * the hasNextPage to set */ public void setHasNextPage(boolean hasNextPage) { this.hasNextPage = hasNextPage; } /** * @param hasPreviousPage * the hasPreviousPage to set */ public void setHasPreviousPage(boolean hasPreviousPage) { this.hasPreviousPage = hasPreviousPage; } /** * @return the startNum */ public int getStartNum() { return startNum; } /** * @param startNum * the startNum to set */ public void setStartNum(int startNum) { this.startNum = startNum; } } 如果你使用的是struts,那么你在调用这个PageBean分页算法之前,你得先取得对你所想要进行分页的数据的总记录数,然后你就实例化这个PageBean,之后你就可以通过get方法得到任何你想要的值。 package test; import cn.eshore.user.util.PageBean; public class Test extends DispatchAction{ ...... public ActionForward loadPageUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ....... int pageSize = 5; String pageId = request.getParameter("pageId"); if (pageId == null || pageId.equals("")) { pageId = "1"; } int currentPage = Integer.parseInt(pageId); //从服务层里得到用户的总记录数 int totalRows = userService.getTotalRows(); PageBean page = new PageBean(pageSize, currentPage, totalRows); .... } } ╔──────────╗ │ hzhui │ │ 专用章 │ ╚─────────㊣╝ 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-11
收藏一下,可能将来对大家有用。也可到我的博客查看更多其它方面的技术文章。感谢大家。
|
|
返回顶楼 | |
发表时间:2007-03-31
我正在找这方面,我不知道是用MYSQL的存储过程分页
还是用JAVABEAN分页 大家说下~~~ |
|
返回顶楼 | |
发表时间:2007-04-06
是javaBean里的分页。怎么了,你想要存储过程里面分页吗?
|
|
返回顶楼 | |
发表时间:2007-04-07
觉得分页的重点不是算法,而是设计
|
|
返回顶楼 | |
发表时间:2007-04-08
我赞同fhjxp的说法,算法相信大家都能够做出来,大不了花多点时间就是啦!可是一个分页的好坏,很大方面是看你的界面设计是如何的。一个好的分页,不仅要具备一盘分页的全部功能,而且还要有一个很好的界面视觉效果。
|
|
返回顶楼 | |
发表时间:2007-04-10
这东西 很老了 !
|
|
返回顶楼 | |
发表时间:2007-07-25
算总数是最费时的
|
|
返回顶楼 | |
发表时间:2007-07-26
我感觉用mysql存储分页 太局限了
|
|
返回顶楼 | |