/**
* 分页样式:第一页、上一页、下一页、最后一页
* @param totalRows 总记录数
* @param pageSize 每页显示的记录数
* @param start 开始查询记录号
* @param actionUrl 访问URL
* @param albumId 相册ID
* @return
*/
public static String pagerInChat(int totalRows, int pageSize, int start, String actionUrl, String albumId) {
//计算总的页数
int totalPages = 1;
if (totalRows > pageSize) {
totalPages = (int) Math.ceil((double) totalRows / (double) pageSize);
}
//计算当前页是第几页
int currentPage = start / pageSize + 1;
StringBuilder pageBuilder = new StringBuilder();
//总记录数小于每页记录数,则只显示一页
if (totalRows <= pageSize) {
pageBuilder.append("<div class=\"div_1\">").append(currentPage).append("/").append(totalPages).append("</div><div class=\"div_2\">");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_5\"></a>");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_1\"></a>");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_3\"></a>");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_6\"></a>");
pageBuilder.append("</div>");
//当前页是第一页
} else if (currentPage == 1) {
pageBuilder.append("<div class=\"div_1\">").append(currentPage).append("/").append(totalPages).append("</div><div class=\"div_2\">");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_5\"></a>");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_1\"></a>");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * currentPage + 1).append("&albumId=").append(albumId).append("\" class=\"link_3\"></a>");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * (totalPages - 1) + 1).append("&albumId=").append(albumId).append("\" class=\"link_6\"></a>");
pageBuilder.append("</div>");
//当前页是最后一页
} else if (currentPage == totalPages) {
pageBuilder.append("<div class=\"div_1\">").append(currentPage).append("/").append(totalPages).append("</div><div class=\"div_2\">");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_5\"></a>");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * (currentPage - 2) + 1).append("&albumId=").append(albumId).append("\"class=\"link_1\"></a>");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * (totalPages - 1) + 1).append("&albumId=").append(albumId).append("\"class=\"link_3\"></a>");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * (totalPages - 1) + 1).append("&albumId=").append(albumId).append("\"class=\"link_6\"></a>");
pageBuilder.append("</div>");
//当前页是中间某一页
} else {
pageBuilder.append("<div class=\"div_1\">").append(currentPage).append("/").append(totalPages).append("</div><div class=\"div_2\">");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_5\"></a>");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * (currentPage - 2) + 1).append("&albumId=").append(albumId).append("\"class=\"link_1\"></a>");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * currentPage + 1).append("&albumId=").append(albumId).append("\"class=\"link_3\"></a>");
pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * (totalPages - 1) + 1).append("&albumId=").append(albumId).append("\"class=\"link_6\"></a>");
pageBuilder.append("</div>");
}
return pageBuilder.toString();
}
分享到:
相关推荐
动态分页算法是数据库系统和Web应用中常用的一种技术,用于高效地处理大量数据并以分页的形式展示给用户。在Java开发中,实现动态分页通常涉及到对数据集的切片操作,以便只加载用户请求的部分数据。下面将详细阐述...
Struts分页算法是Web应用开发中的重要组成部分,特别是在大型数据集展示时,为了提高用户体验,需要将数据分页展示。本算法遵循Model-View-Controller(MVC)设计模式,使得代码结构清晰,易于维护。 在Struts框架...
海量数据库的查询优化及分页算法方案 随着大规模数据库的出现,如何高效地从这些超大容量的数据库中提取数据、分析、统计以及进行数据分页已经成为一个亟待解决的难题。以下我们将探讨如何在有着1000万条数据的MS ...
这个我人写的一个纯Java版的分页算法,与平台无关性,具有很好的通用性,同时附带完整的工程; 工程使用SQLServer2005,建表脚本在工程下的Setup中,根据你个人的数据库调整资源文件中的配置即可运行;同时这个算法...
MySQL 海量数据库的查询优化及分页算法方案 在大规模数据库中,查询优化和分页算法是两个非常重要的方面。本文将详细介绍 MySQL 海量数据库的查询优化和分页算法方案。 一、查询优化 查询优化是指通过调整查询...
"可滚动分页算法"是为了解决这一问题而设计的一种策略,其核心目标是在用户滚动时始终保持第一页和最后一页可见,这样用户既能快速访问起始数据,又能便捷地跳转到末尾。以下是关于这种算法的详细解释: 1. **分页...
本文将深入探讨模拟仿真请求分页调度算法,包括OPT(最佳页面替换算法)、FIFO(先进先出)、LRU(最近最少使用)、LFU(最不常用)以及CLOCK(时钟)这五种常见的算法,并介绍如何利用MFC(Microsoft Foundation ...
分页算法的核心目标是将数据库中的大量数据分割成若干个小的、可管理的部分,每次只加载一部分到前端展示。常见的分页算法有以下几种: 1. **基于RowNum的分页**:在SQL Server中,可以使用ROW_NUMBER()函数结合...
分页算法是计算机科学中的一个重要概念,在Web开发中尤其常见。它的主要目的是将大量的数据按照一定的规则分割成多个较小的数据块(通常称为“页”),以便用户可以更方便地浏览和管理这些数据。 ### 分页算法的...
本文将深入分析一段Java代码,该代码实现了分页算法,通过解析其内部结构与逻辑,帮助理解如何在Java中有效实现分页功能。 #### 分页算法概述 分页算法的核心在于确定当前页码、每页显示的记录数以及总记录数后,...
在网页开发中,分页算法是一项重要的技术,它使得大量数据可以被有效地组织和呈现,提高了用户体验。结合面向对象编程(OOP)思想,我们可以创建一个分页对象,以简化DAO(数据访问对象)层的代码,使得数据的分页...
对oracle操作报表,能够对数据进行分裂分页算法
算法提取: 0.页码显示规则: 当前页为首页时不显示上一页; 上一页 1 2 3 … 20 下一页 当前页为尾页时不显示下一页; 上一页 1 … 17 18 19 20 下一页 1.页面总数(n) 显示全部页码:上一页 1 2 3 4 5 6 7 8...
在大数据处理领域,分页算法是至关重要的,尤其是在Java编程环境下。当我们在处理大量数据时,一次性加载所有数据到内存可能会导致性能问题甚至内存溢出。因此,分页查询成为了一个有效的解决方案,它允许我们每次只...
在实际操作中,由于内存资源有限,无法一次性将所有页面加载到内存,因此引入了分页存储算法来决定哪些页面应被换入内存,哪些应该被换出到磁盘上的交换区。 本文将详细讨论四种常见的分页存储算法:最佳置换算法...
----------=====Java 分页算法 =====------------ 1.Struts+JDBC分页算法 1.1 创建分页控制类(如果使用kevinb.jar可以省略本步) --创建接口Pageable.java --创建实现类PageableResultSet.java 使用以这个实现类来...
本篇文章将深入探讨JSP中的分页算法,帮助开发者更好地理解和运用这一关键技能。 首先,理解分页的基本概念。分页是将大量的数据分割成多个小部分,每次只显示一部分,以提高页面加载速度和用户体验。在JSP中,我们...
Java 分页算法是Java开发中常见的一种数据处理技术,尤其在大数据量的Web应用中,为了提高用户体验,通常会将数据分成多页展示,而不是一次性加载所有数据。这里我们将详细探讨如何实现一个简单的Java分页算法。 ...