public class PaginationClass<T> implements Serializable{
public PaginationClass(){}
public PaginationClass(PaginationClass<T> page){
this.currentPage=page.getCurrentPage();
this.pageSize=page.pageSize;
this.startRow=pageSize*(currentPage-1)+1;
this.endRow=this.startRow+pageSize-1;
}
public PaginationClass(int currentPage,int pageSize){
this.currentPage=currentPage;
this.pageSize=pageSize;
this.startRow=pageSize*(currentPage-1)+1;
this.endRow=this.startRow+pageSize-1;
}
private static final long serialVersionUID = 4008467432343431266L;
private int total;//总记录数
private int totalPage;//总页数
private int currentPage;//当前页,从1开始
private int pageSize;//页大小
private List<T> objects;//页数据
private int startRow;//起始行,从1开始计数
private int endRow;//结束行,从1开始计数
public int getTotalPage() {
totalPage=total/pageSize;
if(total%pageSize!=0)
totalPage=totalPage+1;
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public List<T> getObjects() {
return objects;
}
public void setObjects(List<T> objects) {
this.objects = objects;
}
public int getStartRow() {
return startRow;
}
public void setStartRow(int startRow) {
this.startRow = startRow;
}
public int getEndRow() {
return endRow;
}
public void setEndRow(int endRow) {
this.endRow = endRow;
}
}
freemarker的分页模板:
<#macro p page totalpage totalrecord=0 maxsteps=6>
<#assign ipage=page?string("##")?number>
<#if maxsteps <= 0>
<#assign maxsteps=5>
</#if>
<#assign offset = ((ipage - 1) / maxsteps)?int>
<#assign offsetLast = ((totalpage - 1) / maxsteps)?int>
<#-- url附加参数的判断 -->
<#assign requestParams = "">
<#if (Parameters?? && Parameters?keys?size >0)>
<#list Parameters?keys as paramKey>
<#if (paramKey!="page")>
<#assign requestParams = requestParams+'&' +paramKey+"="+ Parameters[paramKey]?url("iso-8859-1")>
</#if>
</#list>
</#if>
<#-- 总记录-->
<a class="disabled">总计 ${totalrecord!''} 条记录</a> <a class="disabled">共 ${totalpage} 页</a>
<#-- 首页 -->
<#if ipage gt 1>
<a href="?page=1${requestParams}"><<</a>
<#else>
<a class="disabled"><<</a>
</#if>
<#-- 前组-->
<#if offset gt 0>
<a href="?page=${(offset * maxsteps)?string("##")}${requestParams}">…</a>
<#else>
<a>…</a>
</#if>
<#-- 当前组中的页号-->
<#if (offset + 1) * maxsteps < totalpage>
<#assign pagelist = (offset + 1) * maxsteps>
<#else>
<#assign pagelist = totalpage>
</#if>
<#if ipage gt 0 && ipage lte totalpage>
<#list (offset * maxsteps + 1)..pagelist as num>
<#if ipage != num>
<a href="?page=${num?string("##")}${requestParams}">${num?string("##")}</a>
<#else>
<a class="current">${num?string("##")}</a>
</#if>
</#list>
</#if>
<#-- 下组 -->
<#if offset lt offsetLast>
<a href="?page=${((offset + 1) * maxsteps + 1)?string("##")}${requestParams}">…</a>
<#else>
<a>…</a>
</#if>
<#-- 尾页 -->
<#if ipage lt totalpage>
<a href="?page=${totalpage?string("##")}${requestParams}">>></a>
<#else>
<a>>></a>
</#if>
<#-- 前一页 -->
<#if ipage gt 1>
<a href="?page=${(ipage - 1)?string("##")}${requestParams}">上一页</a>
<#else>
<a class="上一页">上一页</a>
</#if>
<#-- 后一页 -->
<#if ipage lt totalpage>
<a href="?page=${(ipage + 1)?string("##")}${requestParams}">下一页</a>
<#else>
<a class="下一页">下一页</a>
</#if>
</#macro>
模板引用分页:
<@pageguide.p page=page totalpage=totalpage total=total/>
分享到:
相关推荐
经典的java分页类,快来下载吧!!!!!
简述 此包可根据需要不同设置 在线分页 与 离线分页 使用在线分页 办法 直接调用 public List showPage(int pageSize,int page,ArrayList<Object> list) 方法即可。 使用离线分页 办法 调用 public boolean ...
### Java分页类定义与使用详解 #### 一、引言 在Web应用程序开发中,尤其是在前后端分离架构中,为了提升用户体验并减轻服务器压力,数据分页是一种非常常见的技术手段。通过合理地将大量数据分批加载到前端,不仅...
强大的分页类通常会考虑更多的实际需求,比如排序、过滤条件、统计信息等,并且可能具有高度可配置性,以适应不同的项目需求。 最后,"分页.rar"可能包含的是一个独立的分页解决方案,可能具有特定的优化或特性。...
java 分页类
page.java java分页工具类
Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类
一个简单的分页类 计算 首页 下页 上页 尾页
跟我上面的java底层简易封装配套的。有需要的也可以学习下。
就一个java类 调用一个方法就实现分页效果 能够简单实现分页
这里我们主要关注后端的Java分页类实现。 首先,我们需要创建一个分页类,这个类将包含关于分页的基本信息,如当前页、总页数、每页显示的记录数以及总记录数等。以下是一个简单的分页类的示例: ```java public ...
只需要在控制器中 判断参数 可以在类中 增加函数 添加功能
java 分页工具类 java 分页工具类java 分页工具类 java 分页工具类java 分页工具类 java 分页工具类java 分页工具类 java 分页工具类
例如,一个简单的Java分页代码可能会如下所示: ```java int currentPage = 1; int pageSize = 10; int offset = (currentPage - 1) * pageSize; String sql = "SELECT * FROM table LIMIT :offset, :pageSize"; ...
Java动态分页类是Web开发中常用的一种技术,主要用于处理大量数据时的显示问题,以提高用户体验和系统性能。在数据库查询中,一次性加载所有数据可能会导致内存压力过大,特别是对于大数据量的表。因此,分页技术...
总结一下,封装Java分页类的主要步骤包括: 1. 定义分页类,包括基本属性如当前页、每页大小、总记录数和总页数。 2. 添加计算总页数的方法。 3. 创建构建分页SQL的方法。 4. 在JSP页面中实例化分页类,使用其方法...
本资源提供了一个完整的Java分页代码实现,包括注释,非常适合初学者学习和实践。 分页的核心原理是通过查询数据库时限制返回结果的数量,同时提供一个偏移量来指定从哪一条数据开始获取。在Java中,我们可以使用...
"java分页工具类" Java分页工具类是Java语言中的一种常用工具类,用于实现分页功能。下面是该工具类的详细知识点: 1. 分页工具类的作用 分页工具类的主要作用是将大量数据分页显示,以便用户更方便地浏览和操作...
根据提供的文件信息,我们可以深入探讨Java分页技术的相关知识点,特别是Struts框架中的分页实现。下面将详细介绍分页的基本概念、Struts框架中的分页处理方式以及如何使用自定义的`PageController`类来实现分页功能...