显示效果:
Page对象:
public class Page<T> {
private int pageNumber = 1; //当前页
private int pageSize = 5; //每页数据条数
private int totalPage; //总页数
private int totalRow; //总条数
private int start = 1; //起始页
private int end; //结束页
private int group = 5; //组大小
private List<T> dataList; //数据
public Page() {
}
public Page(int pageNumber, int pageSize, int totalRow, List<T> dataList) {
super();
this.pageNumber = pageNumber;
this.pageSize = pageSize;
this.totalRow = totalRow;
this.dataList = dataList;
//设置总页数
if (totalRow <= pageSize) {
totalPage = 1;
} else {
totalPage = totalRow / pageSize;
if (totalRow % pageSize != 0) {
totalPage += 1;
}
}
//设置起始结束页
setStartandEnd(group);
}
public int getPageNumber() {
return pageNumber;
}
public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getTotalRow() {
return totalRow;
}
public void setTotalRow(int totalRow) {
this.totalRow = totalRow;
}
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
public int getEnd() {
return end;
}
public void setEnd(int end) {
this.end = end;
}
public int getGroup() {
return group;
}
public void setGroup(int group) {
this.group = group;
}
private void setStartandEnd(int group) {
if (group >= totalPage) {
//如果分组数>总页数,起始页为1,结束页为总页数
start = 1;
end = totalPage;
} else {
//如果分组数<=总页数
start = pageNumber - group / 2;
if (start < 1) {
start = 1;
}
end = start + group - 1;
if (end > totalPage) {
end = totalPage;
start = end - group + 1;
}
}
}
public List<T> getDataList() {
return dataList;
}
public void setDataList(List<T> dataList) {
this.dataList = dataList;
}
}
JSP:
<!--#分页区-->
<div class="list_page_count">
<div class="${page.pageNumber==1?'pageC_tit':'pageC' }">
<a href="javascript:gotoPage(1);">首页</a>
</div>
<div class="${page.pageNumber==1?'pageC_tit':'pageC' }">
<a href="javascript:gotoPage(${page.pageNumber-1>0?page.pageNumber-1:1 });">上一页</a>
</div>
<c:forEach begin="${page.start }" end="${page.end }" var="p">
<div class="${page.pageNumber==p?'pageC_this':'pageC' }">
<a href="javascript:gotoPage(${p});">${p }</a></div>
</c:forEach>
<div class="${page.pageNumber==page.totalPage?'pageC_tit':'pageC' }">
<a href="javascript:gotoPage(${page.pageNumber+1>page.totalPage?page.totalPage: page.pageNumber+1});">下一页</a>
</div>
<div class="${page.pageNumber==page.totalPage?'pageC_tit':'pageC' }">
<a href="javascript:gotoPage(${page.totalPage });">尾页</a>
</div>
</div>
<!--#分页区end..-->