`
royzhou1985
  • 浏览: 253407 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

分页工具类Page

    博客分类:
  • Java
 
阅读更多
public class Page {
	
	public static int MAX_ROW = 10;
	private int index;
	private int page_num;
	private int total;
	private String url;

	public Page(int index, int total, String url) {
		this.index = index;
		this.total = total;
		this.url = url;
		this.page_num = total%MAX_ROW==0? total/MAX_ROW : total/MAX_ROW+1;
	} 

	public String getFooter() {
		//不足一页 不显示分页信息
		if(total<=MAX_ROW) {
			return "";
		} 
		StringBuffer sb = new StringBuffer("分页:");
		//不足MAX_ROW页
		if(page_num <= MAX_ROW) {
			for(int i=0; i<page_num; i++) {
				insertTag(sb, i);
			}
			if(index+MAX_ROW < total) {
			insertTag(sb, index+MAX_ROW, "下一页");
			} else {
				sb.append("下一页");
			}
			return sb.toString();
		} else {
			int unit = MAX_ROW * MAX_ROW;
			if(index < unit) {
				int i;
				for(i=0; i<MAX_ROW; i++) {
					insertTag(sb, i);
				}
				String tt = "下" + MAX_ROW + "页";
				insertTag(sb, i*MAX_ROW, tt);
				return sb.toString();
			} else {
				//当前页
				int currentPage = index/MAX_ROW;
				//当前面 一面有MAX_ROW页
				int currentSection = currentPage/MAX_ROW + 1;
				//上一面起始页
				int lastPage = (currentSection-1) * MAX_ROW - 1;
				//上一面起始记录
				int lastPageRow = lastPage * MAX_ROW;
				//下一面起始页
				int nextPage = currentSection * MAX_ROW;
				//下一面起始记录
				int nextPageRow = nextPage * MAX_ROW;
				String tt = "上" + MAX_ROW + "页";

				insertTag(sb, lastPageRow, tt);
				//是否显示下一面
				if(nextPageRow <= total-1) {
					for(int i=0; i<MAX_ROW; i++) {
						insertTag(sb, i+lastPage + 1);
					}
					tt = "下" + MAX_ROW + "页";
					insertTag(sb, nextPageRow, tt);
				} else {
					int lengthOfPage = total - (lastPage + 1) * MAX_ROW;
					lengthOfPage = lengthOfPage/MAX_ROW + 1;
					for(int i=0; i<lengthOfPage; i++) {
						insertTag(sb, i - 1 + lastPage);
					}
				}
				return sb.toString();
			}
		}
	}

	public void insertTag(StringBuffer sb, int num) {
		int temp = index/MAX_ROW;
		if(num==temp) {
			sb.append(num+1).append("  ");
		} else {
			sb.append("<a href=" + url + "&start_index=");
			sb.append(num*MAX_ROW).append(">").append(num+1).append("</a>  ");
		}
	}

	public void insertTag(StringBuffer sb, int num, String str) {
		sb.append("<a href=" + url + "&start_index=");
		sb.append(num).append(">").append(str).append("</a>  ");
	}

	public static void main(String[] args) {
		System.out.println(new Page(120,250,"http://www.g.cn").getFooter());
		//输出:   分页:上10页 11 12 13 14 15 16 17 18 19 20 下10页
	}
}


JAVA分页工具类
分页工具栏显示为:
分页:上10页 11 12 13 14 15 16 17 18 19 20 下10页

分享到:
评论

相关推荐

    通用分页工具类PageInfo.java

    通用分页工具类PageInfo.java

    java分页工具类

    page.java java分页工具类

    Java jdbc分页工具类

    java jdbc 分页工具类,以及返回集合数据的封装, private int limit = 10;//每页的个数 /** * 当前页 */ private int page; // /** * 总行数 */ private int totalRows; // /** * 总页数 */ private ...

    分页工具类

    在网页开发中,分页工具类是不可或缺的一部分,它用于帮助用户在大量数据中进行有组织的浏览。分页通常应用于数据库查询结果、电商产品列表、论坛帖子等场景,能够提高用户体验,避免一次性加载过多内容导致页面加载...

    java分页 模糊查询 工具类page.util

    java分页 模糊查询 工具类 page.util,导入里面注释有使用方法,非常好用

    对分页进行了封装,PageUtil.java工具类

    这里提到的"对分页进行了封装,PageUtil.java工具类"是一个Java实现的分页辅助类,它的主要目标是简化分页查询的操作,提供更便捷的API给开发者使用。 `PageUtil.java`工具类可能包含了以下功能: 1. **参数处理**...

    java分页工具类,以及基于Struts,Spring,mybatis,jsp中分页的调用及实现

    ### Java分页工具类及其在Struts、Spring、MyBatis和JSP中的应用 #### 一、Java分页概述 在开发Web应用程序时,为了提高用户体验并减轻服务器压力,通常会采用分页技术来展示大量的数据记录。本文将详细介绍一个...

    Pager(通过的分页工具类)

    标题中的“Pager(通过的分页工具类)”显然指的是一个用于实现分页功能的Java类。在这个类中,开发者通常会封装分页操作的相关逻辑,以便在各种场景下复用。现在我们来详细探讨一下分页的基本概念、设计原则以及...

    简单的 分页工具类

    一个简单的分页工具类,包括模糊查询,上一页和下一页,

    工具类->分页Page.java

    Page分页java类 Page.getPageIndex(); Page.getPageCount(); Page.getPageSize(); ...

    超级好用的分页工具类

    非常简单实用,只要传入相应的参数调用page即可,在前端使用EL表达式输出mygroup就可以显示上下一页了

    java分页工具类[非常简洁好用]

    Java分页工具类是开发中常见的一种实用工具,主要用于处理大量数据时的分页显示,以提高用户体验并减轻服务器压力。在Java世界里,我们通常会遇到如MyBatis、Hibernate等ORM框架,它们虽然提供了分页功能,但在某些...

    常用php封装分页工具类

    6. **可配置性**:为了适应不同的需求,分页工具类还可以包含一些可配置的选项,如默认每页条目数、是否显示省略号等。 结合这些要点,我们可以创建一个灵活且易于使用的PHP分页工具类。在实际项目中,你可以根据...

    MVC分页工具类源码

    这个名为"MVC分页工具类源码"的资源提供了一套完整的解决方案,旨在简化和优化MVC应用程序中的分页功能。以下是这些源代码文件所涉及的关键知识点: 1. **PagedList.cs**: 这个类是核心的分页实现,它扩展了`IList...

    类似百度的分页工具类,可直接用于项目开发

    在IT行业中,分页是网页应用中不可或缺的一部分,特别是在处理大量数据时,为了提高用户体验,分页工具类显得尤为重要。本篇文章将详细讲解一个类似百度的分页工具类,以及如何将其应用于Hibernate分页,同时结合EL...

    java分页的工具类

    分页private Integer currentPage; private Integer prePage; private Integer nextPage; private Integer rowCount; private Integer pageRows = 5;

Global site tag (gtag.js) - Google Analytics