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
page.java java分页工具类
java jdbc 分页工具类,以及返回集合数据的封装, private int limit = 10;//每页的个数 /** * 当前页 */ private int page; // /** * 总行数 */ private int totalRows; // /** * 总页数 */ private ...
在网页开发中,分页工具类是不可或缺的一部分,它用于帮助用户在大量数据中进行有组织的浏览。分页通常应用于数据库查询结果、电商产品列表、论坛帖子等场景,能够提高用户体验,避免一次性加载过多内容导致页面加载...
java分页 模糊查询 工具类 page.util,导入里面注释有使用方法,非常好用
这里提到的"对分页进行了封装,PageUtil.java工具类"是一个Java实现的分页辅助类,它的主要目标是简化分页查询的操作,提供更便捷的API给开发者使用。 `PageUtil.java`工具类可能包含了以下功能: 1. **参数处理**...
### Java分页工具类及其在Struts、Spring、MyBatis和JSP中的应用 #### 一、Java分页概述 在开发Web应用程序时,为了提高用户体验并减轻服务器压力,通常会采用分页技术来展示大量的数据记录。本文将详细介绍一个...
标题中的“Pager(通过的分页工具类)”显然指的是一个用于实现分页功能的Java类。在这个类中,开发者通常会封装分页操作的相关逻辑,以便在各种场景下复用。现在我们来详细探讨一下分页的基本概念、设计原则以及...
一个简单的分页工具类,包括模糊查询,上一页和下一页,
Page分页java类 Page.getPageIndex(); Page.getPageCount(); Page.getPageSize(); ...
非常简单实用,只要传入相应的参数调用page即可,在前端使用EL表达式输出mygroup就可以显示上下一页了
Java分页工具类是开发中常见的一种实用工具,主要用于处理大量数据时的分页显示,以提高用户体验并减轻服务器压力。在Java世界里,我们通常会遇到如MyBatis、Hibernate等ORM框架,它们虽然提供了分页功能,但在某些...
6. **可配置性**:为了适应不同的需求,分页工具类还可以包含一些可配置的选项,如默认每页条目数、是否显示省略号等。 结合这些要点,我们可以创建一个灵活且易于使用的PHP分页工具类。在实际项目中,你可以根据...
这个名为"MVC分页工具类源码"的资源提供了一套完整的解决方案,旨在简化和优化MVC应用程序中的分页功能。以下是这些源代码文件所涉及的关键知识点: 1. **PagedList.cs**: 这个类是核心的分页实现,它扩展了`IList...
在IT行业中,分页是网页应用中不可或缺的一部分,特别是在处理大量数据时,为了提高用户体验,分页工具类显得尤为重要。本篇文章将详细讲解一个类似百度的分页工具类,以及如何将其应用于Hibernate分页,同时结合EL...
分页private Integer currentPage; private Integer prePage; private Integer nextPage; private Integer rowCount; private Integer pageRows = 5;