public class Pager extends Object implements Serializable
此类用于分页时显示多项内容,计算页码和当前页的偏移量。
该类只需要知道总的数据项数,当前显示第几页,每页显示几项,就可以帮你计算出其它数据,而且保证所有计算都得出合理的值,不用担心页码超出边界之类的问题。
使用方法如下:
>>
// ^ ^ ^ ^ ^
// 第一页 前一页 当前页 后一页 最后一页
//
// 以上例子就是一个大小为7的滑动窗口,当前页码被尽可能摆在中间,除非当前页位于开头或结尾。
// 使用下面的调用,就可以得到指定大小的滑动窗口中的页码数组。
int[] slider = pg.getSlider(7);
// 这样可以判断指定页码是否有效,或者是当前页。无效的页码在web页面上不需要链接。
if (pg.isDisabledPage(slider[i])) {
show = "page " + slider[i];
} else {
show = " page " + slider[i] + " ";
}
// 可以直接打印出pg,用于调试程序。
System.out.println(pg);
log.debug(pg);
]]>
| 限定符和类型 | 字段和说明 |
|---|---|
static int |
DEFAULT_ITEMS_PER_PAGE
每页默认的项数
|
static int |
DEFAULT_SLIDER_SIZE
滑动窗口默认的大小
|
| 构造器和说明 |
|---|
Pager()
创建一个分页器,默认每页显示
50项。 |
| 限定符和类型 | 方法和说明 |
|---|---|
protected int |
calcPage(int page)
计算页数,但不改变当前页。
|
int |
getActualLength()
取得当前页的长度,即当前页的实际项数。
|
int |
getBeginIndex()
取得当前页显示的项的起始序号 (1-based)。
|
int |
getCurPage()
取得当前页。
|
int |
getEndIndex()
取得当前页显示的末项序号 (1-based)。
|
int |
getFirstPage()
取得首页页码。
|
int |
getItemsPerPage()
取得每页项数。
|
int |
getItemsTotal()
取得总项数。
|
int |
getLastPage()
取得末页页码。
|
List<?> |
getList() |
<E> List<E> |
getList(Class<E> clazz)
返回转换后的数据
|
int |
getNextPage()
取得后一页页码。
|
int |
getNextPage(int n)
取得后n页页码。
|
int |
getOffset()
取得当前页第一项在全部项中的偏移量 (0-based)。
|
int |
getPages()
取得总页数。
|
int |
getPreviousPage()
取得前一页页码。
|
int |
getPreviousPage(int n)
取得前n页页码
|
int[] |
getSlider()
取得默认大小(
DEFAULT_SLIDER_SIZE)的页码滑动窗口,并将当前页尽可能地放在滑动窗口的中间部位。 |
int[] |
getSlider(int pWidth)
取得指定大小的页码滑动窗口,并将当前页尽可能地放在滑动窗口的中间部位。
|
boolean |
isDisabledPage(int page)
判断指定页码是否被禁止,也就是说指定页码超出了范围或等于当前页码。
|
int |
setCurPage(int page)
设置并取得当前页。
|
int |
setItemsPerPage(int itemsPerPage)
设置并取得每页项数。
|
int |
setItemsTotal(int items)
设置并取得总项数。
|
void |
setList(List<?> list) |
int |
setOffset(int offset)
设置第几条记录,使之返回该条记录所在的页数据项
如每页显示10条,设置25,将返回第25条记录所在页的数据项(21-30) |
String |
toString()
转换成字符串表示。
|
public static final int DEFAULT_ITEMS_PER_PAGE
public static final int DEFAULT_SLIDER_SIZE
public int getPages()
public int getCurPage()
public int setCurPage(int page)
page - 当前页public int getItemsTotal()
public List<?> getList()
public void setList(List<?> list)
public int setItemsTotal(int items)
items - 总项数public int getItemsPerPage()
public int setItemsPerPage(int itemsPerPage)
DEFAULT_ITEMS_PER_PAGE。 并调整当前页使之在改变每页项数前后显示相同的项。itemsPerPage - 每页项数public int getOffset()
public int getActualLength()
endIndex() - beginIndex() + 1public int getBeginIndex()
public int getEndIndex()
public int setOffset(int offset)
offset - 要显示的项位置public int getFirstPage()
public int getLastPage()
public int getPreviousPage()
public int getPreviousPage(int n)
n - 前n页public int getNextPage()
public int getNextPage(int n)
n - 后n面public boolean isDisabledPage(int page)
page - 页码public int[] getSlider()
DEFAULT_SLIDER_SIZE)的页码滑动窗口,并将当前页尽可能地放在滑动窗口的中间部位。参见getSlider(int
n)。public int[] getSlider(int pWidth)
pWidth - 滑动窗口大小protected int calcPage(int page)
page - 页码Copyright © 2016. All rights reserved.