`
yaozhiqiang109
  • 浏览: 119706 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java 分页类

    博客分类:
  • JAVA
阅读更多

 

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">总计&nbsp; ${totalrecord!''} &nbsp;条记录</a>  <a class="disabled">共&nbsp;  ${totalpage} &nbsp;页</a> 
    <#-- 首页 --> 
    <#if ipage gt 1>
        <a href="?page=1${requestParams}">&lt;&lt;</a>
    <#else> 
        <a class="disabled">&lt;&lt;</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}">&gt;&gt;</a>
    <#else> 
        <a>&gt;&gt;</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/>

0
0
分享到:
评论

相关推荐

    经典的java分页类

    经典的java分页类,快来下载吧!!!!!

    最强大的JAVA分页类

    简述 此包可根据需要不同设置 在线分页 与 离线分页 使用在线分页 办法 直接调用 public List showPage(int pageSize,int page,ArrayList&lt;Object&gt; list) 方法即可。 使用离线分页 办法 调用 public boolean ...

    Java分页类定义和使用

    ### Java分页类定义与使用详解 #### 一、引言 在Web应用程序开发中,尤其是在前后端分离架构中,为了提升用户体验并减轻服务器压力,数据分页是一种非常常见的技术手段。通过合理地将大量数据分批加载到前端,不仅...

    java分页大全 包括最强大的java分页类

    强大的分页类通常会考虑更多的实际需求,比如排序、过滤条件、统计信息等,并且可能具有高度可配置性,以适应不同的项目需求。 最后,"分页.rar"可能包含的是一个独立的分页解决方案,可能具有特定的优化或特性。...

    java 分页类

    java 分页类

    java分页工具类

    page.java java分页工具类

    Java公用分页类 Java公用分页类

    Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类

    简单的JAVA分页类

    一个简单的分页类 计算 首页 下页 上页 尾页

    java分页类封装

    跟我上面的java底层简易封装配套的。有需要的也可以学习下。

    一个java类 能够简单分页类

    就一个java类 调用一个方法就实现分页效果 能够简单实现分页

    分页 jsp 分页类 java

    这里我们主要关注后端的Java分页类实现。 首先,我们需要创建一个分页类,这个类将包含关于分页的基本信息,如当前页、总页数、每页显示的记录数以及总记录数等。以下是一个简单的分页类的示例: ```java public ...

    struts java分页类

    只需要在控制器中 判断参数 可以在类中 增加函数 添加功能

    java 分页工具类 java 分页工具类

    java 分页工具类 java 分页工具类java 分页工具类 java 分页工具类java 分页工具类 java 分页工具类java 分页工具类 java 分页工具类

    java最简单的分页和pagination分页

    例如,一个简单的Java分页代码可能会如下所示: ```java int currentPage = 1; int pageSize = 10; int offset = (currentPage - 1) * pageSize; String sql = "SELECT * FROM table LIMIT :offset, :pageSize"; ...

    java动态分页类

    Java动态分页类是Web开发中常用的一种技术,主要用于处理大量数据时的显示问题,以提高用户体验和系统性能。在数据库查询中,一次性加载所有数据可能会导致内存压力过大,特别是对于大数据量的表。因此,分页技术...

    java 封装完整的分页类

    总结一下,封装Java分页类的主要步骤包括: 1. 定义分页类,包括基本属性如当前页、每页大小、总记录数和总页数。 2. 添加计算总页数的方法。 3. 创建构建分页SQL的方法。 4. 在JSP页面中实例化分页类,使用其方法...

    java分页代码完整版

    本资源提供了一个完整的Java分页代码实现,包括注释,非常适合初学者学习和实践。 分页的核心原理是通过查询数据库时限制返回结果的数量,同时提供一个偏移量来指定从哪一条数据开始获取。在Java中,我们可以使用...

    java分页工具类(非常实用)

    "java分页工具类" Java分页工具类是Java语言中的一种常用工具类,用于实现分页功能。下面是该工具类的详细知识点: 1. 分页工具类的作用 分页工具类的主要作用是将大量数据分页显示,以便用户更方便地浏览和操作...

    JAVA分页大全.txt

    根据提供的文件信息,我们可以深入探讨Java分页技术的相关知识点,特别是Struts框架中的分页实现。下面将详细介绍分页的基本概念、Struts框架中的分页处理方式以及如何使用自定义的`PageController`类来实现分页功能...

Global site tag (gtag.js) - Google Analytics