📄 page.java
字号:
package com.accp.t29.util;
public class Page {
private int offset;
private int size;
private int length;
private String url;
private String pageHeader;
private String pageNavigation;
public Page()
{
}
public Page(int offset, int size, int length, String url, String pageHeader) {
this.offset = offset;
this.size = size;
this.length = length;
this.url = url;
this.pageHeader = pageHeader;
}
/**
* 返回分页导航条
* @param offset int 起始记录的位置
* @param size int 总记录数
* @param length int 步长
* @param url String .do的url
* @param pageHeader String 导航条的前缀文字提示
* @return String
*/
public String getPageNavigation() {
String pageNavigation = ""; //最终返回的分页导航条
//记录数超过一页,需要分页
if (size > length) {
String pref; //前缀
if (url.indexOf("?") > -1) {
//如果url中已经包含了其他的参数,就把offset参数接在后面
pref = "&";
}
else {
//如果url中没有别的参数
pref = "?";
}
//如果导航条包含header
if (pageHeader != null && pageHeader.length() > 0) {
pageNavigation = pageHeader + " : ";
}
//如果不是第一页,导航条将包含“<<”(第一页)和“<”(前一页)
if (offset > 0) {
pageNavigation += "<a href='" + url + pref + "offset=0'>[<<]</a>\n" +
"<a href='" + url + pref + "offset=" + (offset - length) +
"'>[<]</a>\n";
}
//导航条中,排头的那一页的offset值
int startOffset;
//位于导航条中间的那一页的offset值(半径)
int radius = Constants.MAX_PAGE_INDEX / 2 * length;
//如果当前的offset值小于半径
if (offset < radius || this.pageCount() <= Constants.MAX_PAGE_INDEX) {
//那么第一页排头
startOffset = 0;
}
else if (offset < size - radius) {
startOffset = offset - radius;
}
else {
startOffset = (size / length - Constants.MAX_PAGE_INDEX) * length;
}
for (int i = startOffset;
i < size && i < startOffset + Constants.MAX_PAGE_INDEX * length;
i += length) {
if (i == offset) {
//当前页号,加粗显示
pageNavigation += "<b>" + (i / length + 1) + "</b>\n";
}
else {
//其他页号,包含超链接
pageNavigation += "<a href='" + url + pref + "offset=" + i + "'>" +
(i / length + 1) + "</a>\n";
}
}
//如果不是最后一页,导航条将包含“>”(下一页)和“>>”(最后一页)
if (offset < size - length) {
pageNavigation += "<a href='" + url + pref + "offset=" +
(offset + length) + "'>[>]</a>\n" +
"<a href='" + url + pref + "offset=" + lastPageOffset() +
"'>[>>]</a>\n";
}
// System.out.println("radius : " + radius);
// System.out.println("start offset : " + startOffset);
return pageNavigation;
}
//记录不超过一页,不需要分页
else {
return "";
}
}
public void setPageNavigation(String pageNavigation)
{
this.pageNavigation = pageNavigation;
}
/**
* 返回分页后的总页数
* @param size int 总记录数
* @param length int 每页的记录数
* @return int
*/
public int pageCount() {
int pagecount = 0;
if (size % length == 0) {
pagecount = size / length;
}
else {
pagecount = size / length + 1;
}
return pagecount;
}
/**
* 返回最后一页的记录数
* @param size int 总记录数
* @param length int 每页的记录数
* @return int
*/
public int lastPageSize() {
int lastpagesize = 0;
if (size % length == 0) {
lastpagesize = length;
}
else {
lastpagesize = size % length;
}
return lastpagesize;
}
/**
* 返回最后一页的起始记录位置
* @param size int 总记录数
* @param length int 每页的记录数
* @return int
*/
public int lastPageOffset() {
return size - lastPageSize();
}
public int getOffset() {
return offset;
}
public void setOffset(int offset) {
this.offset = 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;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -