实现分页的思路:
第一步,判断是否有数据,当没数据显示是显示“<strong>暂无数据</strong>”
第二步,上一页的处理,首先判断当前页是否为第一页,如果是span标签,反之<a>标签
第三步,当前页距离第一页大于4显示省略号
第四步,当前页距离左后一页过多显示省略号
第五步,下一页的处理和第二步差不多
代码如下:
package com.fhc.util;
public class pageUtil {
private int pageSize=10;//每页大小
private int pageNo=1;//当前页
private int totalSize;//总数
public String doStartTag(){
//计算有多少页
int pageCount=(totalSize+pageSize-1)/pageSize;
StringBuffer html=new StringBuffer();
//<div class="pagination-input-wrap">前往<input class="pagination-input" type="text">页<a class="pagination-go" href="javascript:void(0)">确定</a></div></div>
html.append("<div class='pagination'>");
//1、没有记录
if(totalSize==0){
html.append("<strong>暂无数据</strong>");
}else{
//越界处理
if(pageNo>pageCount){
pageNo=pageCount;
}
if(pageNo<1){
pageNo=1;
}
//2、上一页的处理
if(pageNo==1){
html.append("<span class='previous unavailable'><span class='arrow-left'></span></span>");
}else{
html.append("<a href='javascript:doPage("+(pageNo-1)+")' class='previous'><span class='arrow-left'></span></a>");
}
int start=1;
//3、当前页距离第一页大于4显示省略号
if(pageNo>4){
start=this.pageNo-1;
html.append("<a href='javascript:doPage(1)' rel='nofollow'>1</a>");
html.append("<a href='javascript:doPage(2)' rel='nofollow'>2</a>");
html.append("<span class='break'>...</span>");
}
//显示当前页附近页
int end=pageNo+1;
if(end>pageCount){
end=pageCount;
}
for(int i=start;i<=end;i++){
if(pageNo==i){
html.append("<span class='current'>"+pageNo+"</span>");
}else{
html.append("<a href='javascript:doPage("+i+")' rel='nofollow'>"+i+"</a>");
}
}
//4、当前页距离左后一页过多显示省略号
if(end<pageCount-2){
html.append("<span class='break'>...</span>");
}
if(end<pageCount-1){
html.append("<a href='javascript:doPage("+(pageCount-1)+")' rel='nofollow'>"+(pageCount-1)+"</a>");
}
if(end<pageCount){
html.append("<a href='javascript:doPage("+(pageCount)+")' rel='nofollow'>"+(pageCount)+"</a>");
}
//5、下一页
if(pageNo==pageCount){
html.append("<span class='next unavailable'><span class='arrow-right'></span></span>");
}else{
html.append("<a class='next' href='javascript:doPage("+(pageNo+1)+")'><span class='arrow-right'></span></a>");
}
html.append("<div class='pagination-input-wrap'>前往<input class='pagination-input' type='text' id='page'>页<a class='pagination-go' href='javascript: var value=document.getElementById(\"page\").value;doPage(value)'>确定</a></div>");
}
html.append("</div>");
return html.toString();
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public int getTotalSize() {
return totalSize;
}
public void setTotalSize(int totalSize) {
this.totalSize = totalSize;
}
}