服务端代码
使用工具类可以大大提高我们的开发效率
package com.web.commons;
import java.io.Serializable;
import java.util.List;
/**
* 用于封装分页数据的对象
* @author
* @param <E>
*
*/
public class Page<E> implements Serializable {
private static final long serialVersionUID = 3636538827502392743L;
private int curPage;//当前页 *
private int pageSize = 5;//每页显示的条数 *
private int totalRecords;//总记录条数 *
private int startIndex;//查询的开始记录索引 *
private int totalPage;//总页数 *
private int prePage;//上一页 *
private int nextPage;//下一页 *
private List<E> records;//分好页的结果集(最多只能有5个对象)
//用于显示页码的属性。我们的需求就是页面上最多只显示5个页码。当前页在允许的情况下永远居中
private int beginPage;
private int endPage;
/**
* 要想使用此类,必须提供2个参数
* @param curtPage 当前页
* @param totalRecords 总记录条数
*/
public Page(int curPage, int totalRecords){
this.curPage= curPage;
this.totalRecords = totalRecords;
//计算开始记录索引
startIndex = (curPage - 1) * pageSize;
//计算总页数
totalPage = totalRecords%pageSize==0 ? totalRecords/pageSize : totalRecords/pageSize+1;
//计算页号
if(totalPage < 6){
beginPage = 1;
endPage = totalPage;
}else{
beginPage = curPage - 2;
endPage= curPage + 2;
if(beginPage < 1){
beginPage = 1;
endPage = beginPage + 5;
}
if(endPage > totalPage){
endPage = totalPage;
beginPage = endPage - 5;
}
}
}
public int getPrePage() {
//计算上一页
prePage = curPage - 1;
if(prePage < 1){
prePage = 1;
}
return prePage;
}
public int getNextPage() {
//计算下一页
nextPage = curPage+ 1;
if(nextPage > totalPage){
nextPage = totalPage;
}
return nextPage;
}
public int getCurPage() {
return curPage;
}
public void setCurPage(int curPage) {
this.curPage = curPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalRecords() {
return totalRecords;
}
public void setTotalRecords(int totalRecords) {
this.totalRecords = totalRecords;
}
public int getStartIndex() {
return startIndex;
}
public void setStartIndex(int startIndex) {
this.startIndex = startIndex;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public List<E> getRecords() {
return records;
}
public void setRecords(List<E> records) {
this.records = records;
}
public int getBeginPage() {
return beginPage;
}
public void setBeginPage(int beginPage) {
this.beginPage = beginPage;
}
public int getEndPage() {
return endPage;
}
public void setEndPage(int endPage) {
this.endPage = endPage;
}
public void setPrePage(int prePage) {
this.prePage = prePage;
}
public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}
}
前端代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<script type="text/javascript">
function toPage(num) {
//给表单中提供的一个隐藏域赋值
document.getElementById("pageNum").value=num;
//提交表单
document.forms[0].submit();
}
</script>
<style>
div{
margin-top:20px;
}
div a{
border:1px solid lightblue;
padding: 3px 3px 3px 3px;
border-radius:25%;
}
a:active{
border-left:2px solid lightblue;
border-right:1px solid white;
border-top:2px solid lightblue;
border-bottom:1px solid white;
}
</style>
<div id="pageDiv">
<a href="javascript:toPage(1)">首页</a>
<a href="javascript:toPage('${page.prePage }')">上一页</a>
<s:iterator begin="%{page.beginPage}" end="%{page.endPage}" var="snum">
<a href="javascript:topage('${snum}')">${snum}</a>
</s:iterator>
<a href="javascript:toPage('${page.nextPage }')">下一页</a>
<a href="javascript:toPage('${page.totalPage }')">末页</a>
第<font color=red>${page.curPage }</font>页/共${page.totalPage}页
</div>
使用时,请使用静态包含
<%--分页开始 --%>
<%@include file="/jsp/commons/page.jsp" %>
<%--分页结束 --%>