package app.log;
public class LogPage {
private int mCurentPageNum = 1;
private int mPageItemNum = 13;
private int mToatalItemNum = 0;
private int mTotalPageNum = 0;
private int mDisplayPageNum = 5;
public LogPage(int allNum) {
mToatalItemNum = allNum;
mTotalPageNum = mToatalItemNum/mPageItemNum + (mToatalItemNum%mPageItemNum>0?1:0);
}
public String displayPages(int currentPageNum) {
StringBuffer data = new StringBuffer();
data.append("<div class=\"page_nav\">");
data.append("<span>"+mToatalItemNum+"条数据 共"+mTotalPageNum+"页</span>");
mCurentPageNum = currentPageNum;
if (mTotalPageNum <= mDisplayPageNum) {
for(int i=1;i<=mTotalPageNum;i++) {
if (mCurentPageNum == i) {
data.append("<strong>"+i+"</strong>");
}else {
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+i+")\">"+i+"</a>");
}
}
return data.toString();
}
if (mCurentPageNum <= mDisplayPageNum) {
for(int i=1;i<=mDisplayPageNum;i++) {
if (mCurentPageNum == i) {
data.append("<strong>"+i+"</strong>");
}else {
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+i+")\">"+i+"</a>");
}
}
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+getDownThreePoint()+")\">...</a>");
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+(mCurentPageNum+1)+")\">下一页</a>");
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+mTotalPageNum+")\">末页</a>");
return data.toString();
}
if (mTotalPageNum - mCurentPageNum+1 <= mDisplayPageNum) {
data.append("<a href=\"javascript:;\" οnclick=\"showPage(1)\">首页</a>");
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+(mCurentPageNum-1)+")\">上一页</a>");
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+getUpThreePoint()+")\">...</a>");
for(int i=mTotalPageNum - mDisplayPageNum +1; i<=mTotalPageNum;i++){
if (mCurentPageNum == i) {
data.append("<strong>"+i+"</strong>");
}else {
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+i+")\">"+i+"</a>");
}
}
return data.toString();
}
///
data.append("<a href=\"javascript:;\" οnclick=\"showPage(1)\">首页</a>");
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+(mCurentPageNum-1)+")\">上一页</a>");
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+getUpThreePoint()+")\">...</a>");
int remainder = mCurentPageNum%mDisplayPageNum;
int startData =0;
if (remainder == 0) {
startData = mCurentPageNum-mDisplayPageNum+1;
}else {
startData = mCurentPageNum-remainder+1;
}
for(int i=startData;i<mDisplayPageNum + startData;i++) {
if (mCurentPageNum == i) {
data.append("<strong>"+i+"</strong>");
}else {
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+i+")\">"+i+"</a>");
}
}
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+getDownThreePoint()+")\">...</a>");
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+(mCurentPageNum+1)+")\">下一页</a>");
data.append("<a href=\"javascript:;\" οnclick=\"showPage("+mTotalPageNum+")\">末页</a>");
return data.toString();
}
int getUpThreePoint() {
int tmp=0;
if (mCurentPageNum%mDisplayPageNum == 0) {
tmp=mCurentPageNum-2*mDisplayPageNum+1;
}else {
tmp=mCurentPageNum-(mDisplayPageNum+mCurentPageNum%mDisplayPageNum-1);
}
return tmp;
}
int getDownThreePoint() {
int tmp=0;
if (mCurentPageNum%mDisplayPageNum == 0) {
tmp=mCurentPageNum + 1;
} else {
tmp=mCurentPageNum + (mDisplayPageNum-(mCurentPageNum%mDisplayPageNum))+1;
}
return tmp;
}
public static void main(String[] args) {
LogPage p = new LogPage(3000);
System.out.print(p.displayPages(299));
}
public int getmPageItemNum() {
return mPageItemNum;
}
}
<pre name="code" class="html">.page_nav{margin:20px 0; color:#666; text-align:center;}
.page_nav a,.page_nav strong{display:inline-block; height:22px; margin:0 2px; padding:0 8px; border:solid 1px #dbe5ee; -moz-border-radius: 3px;-webkit-border-radius:3px; background:#fff; cursor:pointer; font:normal 12px/22px Arial, Helvetica, sans-serif;}
.page_nav strong {height:24px; margin:0 3px; border:none; background:#07519a; color:#fff; line-height:24px; text-decoration:none;}
.page_nav span{margin:0 10px;}
function showPage(pageNo) {
$('form').find('input[name="currentPageNum"]').val(pageNo);
$('form').submit();
return false;
}
public <X> List<X> findPage(final String hql, final Map<String, ?> values, int pageSize, int pageNo) {
Query query = createQuery(hql, values);
if (pageNo != 0 && pageSize != 0) {
query.setFirstResult((pageNo - 1) * pageSize);
query.setMaxResults(pageSize);
}
return query.list();
}