📄 paginationhelper.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 + -