/**
* 分页算法
*/
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 │
│ 专用章 │
╚─────────㊣╝
分享到:
相关推荐
JScript.js可能是一个外部JavaScript文件,包含了具体的分页算法和逻辑。在JavaScript中,实现分页功能可能涉及以下几个关键知识点: 1. 计算总页数:根据数据总数和每页显示的条目数来计算出总的页数。 2. 创建...
ITEYE是一个知名的IT技术社区,博主通常会在这样的平台上分享他们的编程经验和技术理解。 标签“源码”和“工具”提示我们这篇文章可能包含实际的Java源代码示例,并且这些代码可能被设计为可复用的工具或库,帮助...
描述中提到的链接指向了一篇博客文章,虽然具体内容没有给出,但从链接我们可以推测博主分享的是关于如何设计或实现一个基于控件的分页组件的教程或者技术分享。这种文章通常会涵盖分页组件的基本原理,如如何计算总...
分页式每日精选经验分享发布微信社交小程序源码是一套基于微信小程序开发的代码资源,主要功能是实现一个能够展示每日精选经验分享的社交平台。这个小程序的核心特性可能包括以下几个方面: 1. **分页加载**:在...
参考提供的链接[https://penghuaiyi.iteye.com/blog/793449],博主penghuaiyi分享了一种JavaScript实现分页的方法,包括了创建分页HTML结构、计算页码、绑定事件和更新数据等步骤。具体代码细节可在此链接查看。 6...
综合以上分析,这个资源包提供了ASP环境下的FSO分页组件源码,对于需要处理大量数据并优化分页算法的开发者来说,这是一个有价值的参考资料。通过学习和使用这套组件,开发者可以更好地管理服务器上的文件,并实现更...
通过时间分片定位、事件委托、分页算法实现跨库分页查询 1.appsettings.json配置 2.初始化数据库 3.获取IFreeSql操作对象 5.跨库分页查询 6. 跨库增删改 7.跨库并行查询(不分页) 8.跨库ToOne查询 9.跨库Any查询 ...
Elasticsearch 是一个基于 Lucene 的搜索引擎,提供了强大的搜索功能和灵活的数据处理能力。本资源库分享了 Elasticsearch 的多个方面的知识点,涵盖了基本概念、查询优化、安全策略、Java 集成、数据处理等多个方面...
总结来说,"jQ导出PDF自动分页打印特效代码"是一个使用jQuery和Canvas技术解决HTML到PDF转换问题的实用工具,其核心在于自动分页算法,能够确保内容在PDF中适当地分页显示。用户可以借助提供的文件和说明,将这个...
这里,`request.files`是一个MultiDict对象,包含了所有上传的文件。通过键(`'file'`)获取到上传的文件对象,然后保存到服务器。 **代码总结** 代码总结是开发者积累经验的重要方式,它有助于记忆、分享和复用...
总的来说,这个教程提供了一个全面的视角来理解2D激光SLAM以及gmapping算法。通过图文并茂的方式,即使是SLAM领域的初学者也能快速上手。同时,源码的分享使得学习者有机会实践并改进算法,进一步提升自己的技能。
今天偶然想起来一个坑爹数据,如:PHP取百万条数据中随机20条记录,当时就用的算法。 1.先统计统计数据库多少条记录(这个做个数据缓存,如1小时重新统计一次), 2.根据总条数,随机1次,1次性取出20条记录(当然这...
今天,我们将详细介绍如何使用PageHelper插件实现分页效果,并分享一个实际项目中的应用经验。 MyBatis插件PageHelper简介 PageHelper是一个MyBatis插件,用于实现分页查询功能。它提供了一个简单的API,允许...
Pudn.com是一个在线技术分享平台,常常有程序员分享代码和学习资料。 在实际应用中,虽然FIFO算法简单,但其性能并不总是最优。因为FIFO可能导致频繁使用的页面(即“热”页面)过早被替换,这种现象被称为Belady's...
【标题】"PHP实例开发源码——爱迪达搞笑视频分享站php版 2.01.zip" 提供的是一个基于PHP的视频分享网站的源代码,版本为2.01。这个项目可能是为了帮助开发者了解如何使用PHP构建一个功能齐全、用户可以上传和分享...
1. 分页算法:LitePager的核心功能是根据每页显示的数据量来分割数据集,实现动态加载和切换页面。 2. JavaScript或jQuery:作为Web前端的组件,LitePager很可能基于JavaScript或jQuery实现,用于处理用户交互和更新...
C#提供了多种分页方式,例如SQL Server的ROW_NUMBER()函数、ADO.NET的Paging支持或者自定义的分页算法。分页时,需要指定每页的记录数(这里是20行)和当前页数,然后只加载当前页的数据到报表中。 3. 报表设计:...
本项目聚焦于中国历史领域,旨在设计并实现一个基于Android系统的中国历史分享APP,以满足用户对历史知识的需求。该项目采用Java编程语言进行开发,并结合SpringBoot框架,构建后端服务,同时考虑了微信小程序的集成...
【个人网上日记本】是一个基于SpringMVC框架、MySQL数据库的在线日记系统,它提供了丰富的功能,包括后台分页、富文本编辑、附件与文件上传以及时间选择器等。这个项目不仅适合个人使用,同时也适合作为毕业设计的...
- **进程状态**:系统中有n个进程,等待队列中进程的个数最多为n-1个,因为至少有一个进程在运行。 - **原语**:在操作系统中,不可中断执行的操作称为原语,它是操作系统实现并发控制的基础。 - **进程调度**:...