Pager

package com.hk.app.meet.util;

import com.sun.org.apache.bcel.internal.Constants;

public class Pager {
private int current;// 当前记录的位置
private int size; // 数据总记录
private int length;// 每页显示的记录条数
private String url;// URL 调用Action里分页请求的URL
private String pageHeader;// 导航条前文字

private int MAX_PAGE_INDEX=10;
private int PAGE_SIZE=10;

public Pager(int offset, int size, int length, String url, String pageHeader) {
this.current = offset;
this.size = size;
this.length = length;
this.url = url;
this.pageHeader = pageHeader;
}

public int getOffset() {
return current;
}

public void setOffset(int offset) {
this.current = offset;
}

public int getSize() {
return size;
}

public void setSize(int size) {
this.size = size;
}

public int getLength() {
return length;
}

public void setLength(int length) {
this.length = length;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public String getPageHeader() {
return pageHeader;
}

public void setPageHeader(String pageHeader) {
this.pageHeader = pageHeader;
}

/**
* 返回分页导航条
*
*/

public String getPageNavigation() {
String pageNavigation = "";

if (size > length) {
String pref; // 前缀
if (url.indexOf("?") > -1) {

pref = "&";
} else {

pref = "?";
}

if (pageHeader != null && pageHeader.length() > 0) {
pageNavigation = pageHeader + " : ";
}
// 包含“<<”(第一页)和“<”(前一页)
if (current > 0) {
pageNavigation += "<a href='" + url + pref
+ "current=0'>[首页]</a>\n" + "<a href='" + url + pref
+ "current=" + (current - length) + "'>[<]</a>\n";
}
// 导航条中,排头的那一页的current值
int startOffset;

int radius = MAX_PAGE_INDEX / 2 * length;

if (current < radius
|| this.pageCount() <= MAX_PAGE_INDEX) {

startOffset = 0;
} else if (current < size - radius) {
startOffset = current - radius;
} else {
startOffset = (size / length - MAX_PAGE_INDEX)
* length;
}
for (int i = startOffset; i < size
&& i < startOffset + MAX_PAGE_INDEX * length; i += length) {
if (i == current) {
// 当前页号,加粗显示
pageNavigation += "<b>" + (i / length + 1) + "</b>\n";
} else {

pageNavigation += "<a href='" + url + pref + "current=" + i
+ "'>" + (i / length + 1) + "</a>\n";
}
}
// (下一页)和“>>”(最后一页)
if (current < size - length) {
pageNavigation += "<a href='" + url + pref + "current="
+ (current + length) + "'>[>]</a>\n" + "<a href='"
+ url + pref + "current=" + lastPageOffset()
+ "'>[尾页]</a>\n";
}

return pageNavigation;
}

else {
return "";
}
// return "";
}

/**
* 返回分页后的总页数
*
*/
public int pageCount() {
int pagecount = 0;
if (size % length == 0) {
pagecount = size / length;
} else {
pagecount = size / length + 1;
}
return pagecount;
}

/**
* 返回最后一页的起始记录位置
*/
public int lastPageOffset() {
return size - lastPageSize();
}

/**
* 返回最后一页的记录数
*/
public int lastPageSize() {
int lastpagesize = 0;
if (size % length == 0) {
lastpagesize = length;
} else {
lastpagesize = size % length;
}
return lastpagesize;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值