/**
* 分页
* @param al
* @param curPage
* @return
*/
protected HashMap getPageList(ArrayList al, int curPage) {
HashMap result=new HashMap();
int count = al.size();
ArrayList showPage=new ArrayList();
int totalPage=0;
int pageCount = 100;//一页显示的条数
int showPageSize=10;//显示的页数,[1][2][3]
if (count == 0){
result.put("pageSize", String.valueOf(pageCount));
result.put("currentPage", String.valueOf(curPage));
result.put("showPage", showPage);
result.put("totalPage", String.valueOf(totalPage));
result.put("data", al);
return result;
}
int pageLimit = (count - 1) / pageCount + 1;
int begin = 0;
int end = count;
if (curPage * pageCount < count) {
end = curPage * pageCount;
}
if ((curPage - 1) * pageCount > 1 && curPage <= pageLimit) {
begin = (curPage - 1) * pageCount;
}
ArrayList rt = new ArrayList(al.subList(begin, end));
//总页数
if(count%pageCount==0){
totalPage=count/pageCount;
}else{
totalPage=count/pageCount+1;
}
if(curPage>totalPage) curPage=totalPage;
//设置分页显示的数
if(totalPage>showPageSize){
int half=showPageSize/2;//显示分页页数的一半
if(curPage>totalPage-half){//当前页在末尾的几页时
for(int i=totalPage-showPageSize;i<totalPage+1;i++){
showPage.add(String.valueOf(i));
}
}else if(curPage>half){//当前页在中间的几页时
begin=curPage-half;
end=curPage+half;
for(int i=begin;i<end+1;i++){
showPage.add(String.valueOf(i));
}
}else{
for(int i=1;i<showPageSize+1;i++){
showPage.add(String.valueOf(i));
}
}
}else{//总页数小于需要显示的页数,则把页数添加到showPage中
for(int i=1;i<totalPage+1;i++){
showPage.add(String.valueOf(i));
}
}
// System.out.println("size:"+curPage);
result.put("pageSize", String.valueOf(pageCount));
result.put("currentPage", String.valueOf(curPage));
result.put("showPage", showPage);
result.put("totalPage", String.valueOf(totalPage));
result.put("data", rt);
return result;
}
页面:
<!-- 分页 -->
<table width="200px" align="center">
<tr>
<td align="center">
<html:link page="/issueAdmin.do?op=show_all¤tPage=1">首页</html:link>
</td>
<td align="center">
<logic:iterate id="ele" name="showPage">
<logic:equal name="ele" value="${currentPage}"><strong></logic:equal>
<html:link page="/***.do?op=show_all¤tPage=${ele}">[<bean:write name="ele"/>]</html:link>
<logic:equal name="ele" value="${currentPage}"></strong></logic:equal>
</logic:iterate>
</td>
<td align="center">
<html:link page="/***do?op=show_all¤tPage=${taotalPage}">尾页</html:link>
</td>
<td align="center">第<bean:write name="currentPage"/>页</td>
</tr>
</table>
分享到:
相关推荐
本文将详细介绍两种常用的JavaWeb分页方法:基于数据库查询的分页和基于内存的分页。 一、基于数据库查询的分页 1. SQL查询分页: 这种方法直接在SQL查询语句中实现分页。大多数数据库系统如MySQL、Oracle、SQL ...
### 数据库分页方法 在处理大量数据时,分页技术是提高用户体验、优化系统性能的重要手段之一。本文将深入探讨数据库分页的基本概念、原理以及实现方式,并通过具体的SQL语句示例来帮助读者更好地理解和掌握这一...
通用分页方法接口的设计旨在提供一种标准化的、可复用的解决方案,使得不同的数据访问层(如数据库查询、API调用等)都能够方便地进行数据分页操作。下面我们将详细探讨这个主题。 一、分页的基本概念 分页是指将...
### 一种高效的ASP+ACCESS分页方法 #### 知识点概述 在Web开发中,尤其是在使用ASP(Active Server Pages)结合ACCESS数据库进行网站构建的过程中,分页技术是非常重要的一个环节。传统的分页方法虽然简单易懂,但...
本篇文章将深入探讨C#中实现分页的几种常见方法,并提供实践指导。 一、SQL Server 分页 在与SQL Server数据库进行交互时,我们可以利用SQL查询语句中的`OFFSET-FETCH`或`TOP`结合`WITH TIES`来实现分页。例如,...
### Java通用分页方法解析与应用 在Java开发中,特别是在Web应用中,分页功能是数据展示中不可或缺的一部分。合理的分页不仅能够提升用户体验,还能优化服务器性能,避免一次性加载大量数据导致的延迟和资源消耗。...
java几种分页方法java几种分页方法java几种分页方法 java几种分页方法java几种分页方法java几种分页方法 java几种分页方法java几种分页方法java几种分页方法 java几种分页方法java几种分页方法java几种分页方法
综上所述,这个"可重用的MVC分页方法"案例通过纯手工的方式展示了如何在ASP.NET MVC中实现分页,同时强调了代码的可复用性和易维护性。通过学习这个案例,开发者可以更好地掌握MVC架构下分页功能的实现技巧。
在提供的文件列表中,"page1.jpg"和"page2.jpg"可能是示例分页效果的截图,而"调用函数分页_分页方法不错_带省略号"可能是一个包含具体代码实现的文本文件。通过分析这些文件,可以更深入地理解如何在实际项目中应用...
这个主题,"极限超强百度,谷歌分页方法",涉及到如何高效地处理大量数据并提供用户友好的分页体验。下面将详细介绍这一领域的关键知识点。 首先,分页的目的是为了提高网页加载速度和用户体验。当搜索引擎返回...
对于小规模的数据,可以使用简单的分页方法,但是对于大规模的数据,需要使用更复杂的分页方法来提高性能。本文对不同数据规模的应用环境进行了测试,结果表明,选择合适的分页方法可以提高 Web 应用系统的性能。 5...
### 三种数据库SQL分页方法详解 在数据库查询过程中,分页是非常常见且重要的一个功能。它可以帮助我们更高效地处理大量数据,特别是在构建大型应用系统时,分页技术能够显著提升用户体验。本文将详细介绍三种...
在“24款网页分页方法满足网站需要”这个主题中,我们将探讨各种分页实现方式及其优缺点,帮助开发者根据项目需求选择最适合的方案。 1. 基础样式分页:基础的HTML与CSS结合,通过`<ul>`、`<li>`等元素创建分页链接...
本资源"JSP精心收藏的21种分页方法"正是针对这一需求,提供了多种实用且高效的分页解决方案。以下是这些方法的一些关键知识点: 1. **基础分页**:这是最简单的分页方式,通过计算总条数和每页显示的条数,设置页码...
这种分页方法简单易懂,但当数据量很大时,OFFSET的性能问题不容忽视,因为它需要跳过前N条记录。 2. 关联查询分页 关联查询分页通常与数据库的主键和自增ID结合使用。这种方法不直接使用OFFSET,而是通过计算出...
经典Struts2分页方法是Java Web开发者需要掌握的核心技能之一。 分页的实现通常涉及到以下几个关键知识点: 1. **Action类**:在Struts2中,Action类是处理用户请求的中心。为了实现分页,我们需要创建一个包含...
标题:"一个高效简洁的Struts分页方法" 描述:"一个高效简洁的Struts分页方法" 标签:"Struts分页方法" 知识点详细说明: 在Web应用开发中,分页是处理大量数据展示的一种常见需求。Struts框架作为Java Web开发...
### 数据库分页方法概述 在数据库操作中,分页是一项非常重要的技术,尤其是在处理大量数据时,能够有效地提升查询效率和用户体验。本文将详细介绍Oracle、MySQL、SQL Server等常见数据库系统的分页方法。 ### ...
【ASP分页方法详解】 在ASP(Active Server Pages)中,分页是处理大量数据时常用的一种技术,它能够将数据库中的数据分批次显示,提高网页加载速度并提供更好的用户体验。这里我们将详细介绍两种通用的ASP分页方法...
### Struts2分页方法详解 #### 知识点一:Struts2框架与分页概念 Struts2是Apache软件基金会的一个开源Web应用框架,它继承了Struts1的优点并改进了许多不足之处,提供了更丰富的插件和标签库,支持拦截器、结果...