⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paginationhelper.java

📁 dispalytag的源码
💻 JAVA
字号:
/** * Licensed under the Artistic License; you may not use this file * except in compliance with the License. * You may obtain a copy of the License at * *      http://displaytag.sourceforge.net/license.html * * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */package org.displaytag.pagination;import java.util.Iterator;import java.util.List;import org.apache.commons.collections.IteratorUtils;/** * <p> * Class to help pagination when dealing with lists. * </p> * <p> * The class will attempt to use <code>java.util.List.subList(int,int)</code> to index into the list for the * appropriate page. * </p> * <p> * If the list does not contain enough elements to support the sub list, then the first <code>pageSize</code> elements * will be returned. * </p> * @author <a href="mailto:kevin.a.conaway@gmail.com">Kevin Conaway</a> */public class PaginationHelper{    private final int pageNumber;    private final int pageSize;    public PaginationHelper(int pageNumber, int pageSize)    {        this.pageNumber = pageNumber;        this.pageSize = pageSize;    }    public Iterator getIterator(Object data)    {        if (data instanceof List)        {            return getIterator((List) data);        }        return IteratorUtils.getIterator(data);    }    public Iterator getIterator(List data)    {        int start = getStart(data.size());        int end = getEnd(data.size(), start);        return data.subList(start, end).iterator();    }    protected int getStart(int listSize)    {        int start = (pageNumber - 1) * pageSize;        if (start >= listSize)        {            start = 0;        }        return start;    }    protected int getEnd(int listSize, int start)    {        int end = pageNumber * pageSize;        if (end > listSize)        {            end = listSize;            if ((end - start) > pageSize)            {                end = pageSize;            }        }        return end;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -