`
yaozhiqiang109
  • 浏览: 117554 次
  • 性别: 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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics