大数据分页功能 的一种实现方式
工具类 Page.java
import java.util.List;
//界面上所有与分页有关的都找此类要
public class Page
private List records;
private int pagesize = 10;//每页显示的记录条数
private int pagenum;//用户要看的页码即当前页码
private int totalpage;//总页数
private int startIndex;//每页开始记录的索引
private int totalrecords;//总记录条数
//显示的页码
private int startPage;
private int endPage;
//查询数据时的Servlet的URL
private String servletUrl;
public Page(int pagenum,int totalrecords){
this.pagenum = pagenum;
this.totalrecords = totalrecords;
//计算每页开始记录的索引
startIndex = (pagenum-1)*pagesize;
//计算总页数
totalpage = totalrecords%pagesize==0?totalrecords/pagesize:(totalrecords/pagesize+1);
//显示的页码
if(totalpage<=9){
startPage = 1;
endPage = totalpage;
}else{
startPage = pagenum-4;
endPage = pagenum+4;
if(startPage<1){
startPage = 1;
endPage = 9;
}
if(endPage>totalpage){
endPage = totalpage;
startPage = totalpage-8;
}
}
}
public List getRecords() {
return records;
}
public void setRecords(List records) {
this.records = records;
}
public int getPagesize() {
return pagesize;
}
public void setPagesize(int pagesize) {
this.pagesize = pagesize;
}
public int getPagenum() {
return pagenum;
}
public void setPagenum(int pagenum) {
this.pagenum = pagenum;
}
public int getTotalpage() {
return totalpage;
}
public void setTotalpage(int totalpage) {
this.totalpage = totalpage;
}
public int getStartIndex() {
return startIndex;
}
public void setStartIndex(int startIndex) {
this.startIndex = startIndex;
}
public int getTotalrecords() {
return totalrecords;
}
public void setTotalrecords(int totalrecords) {
this.totalrecords = totalrecords;
}
public int getStartPage() {
return startPage;
}
public void setStartPage(int startPage) {
this.startPage = startPage;
}
public int getEndPage() {
return endPage;
}
public void setEndPage(int endPage) {
this.endPage = endPage;
}
public String getServletUrl() {
return servletUrl;
}
public void setServletUrl(String servletUrl) {
this.servletUrl = servletUrl;
}
}
jsp页面使用
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!-- 分页的东东 -->
第${page.pagenum}页/共${page.totalpage}页
<a href="${pageContext.request.contextPath}/servlet/ShowAllCustomersServlet">首页</a>
<a href="${pageContext.request.contextPath}/servlet/ShowAllCustomersServlet?pagenum=${page.pagenum-1==0?1:page.pagenum-1}">上一页</a>
<c:forEach begin="${page.startPage}" end="${page.endPage}" var="num">
<a href="${pageContext.request.contextPath}/servlet/ShowAllCustomersServlet?pagenum=${num}">${num }</a>
</c:forEach>
<a href="${pageContext.request.contextPath}/servlet/ShowAllCustomersServlet?pagenum=${page.pagenum+1>page.totalpage?page.totalpage:page.pagenum+1}">下一页</a>
<a href="${pageContext.request.contextPath}/servlet/ShowAllCustomersServlet?pagenum=${page.totalpage}">尾页</a>
<select id="s1">
<c:forEach begin="1" end="${page.totalpage}" var="num">
<option value="${num}" ${page.pagenum==num?'selected="selected"':''}>${num}</option>
</c:forEach>
</select>
<a href="javascript:jump()">跳转</a>
<script type="text/javascript">function jump(){
var num = document.getElementById("s1").value;
window.location.href="${pageContext.request.contextPath}/servlet/ShowAllCustomersServlet?pagenum="+num;
}
</script>