当前页面: 开发资料首页 → J2EE 专题 → 分页问题解决之道---共同学习共同进步
摘要: 分页问题的一种解决方法
import java.io.Serializable;
public class PageCut implements Serializable {
protected int allNum;//所有记录条数
protected int perPageCount;//每页记录数
protected int allPage;//总的页数
protected int currentPage; 当前的页数
/**
* 获得当前的页数
* @return currentPage 当前的页数
*/
public int getCurrentPage() {
return currentPage;
}
/**
* 设置当前的页数
* @param currentPage 当前的页数
*/
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
/**
* 获得所有记录数
* @return allNum 所有记录数
*/
public int getAllNum() {
return allNum;
}
/**
* 获得每页的记录条数
* @return perPageCount 每页的记录条数
*/
public int getPerPageCount() {
return perPageCount;
}
/**
* 设置每页的记录条数
* @param perPageCount 每页的记录条数
*/
protected void setPerPageCount(int perPageCount) {
this.perPageCount = perPageCount;
}
/**
* 获得总页数
* @return allPage 总页数
*/
public int getAllPage() {
if(allNum%perPageCount==0){
allPage=allNum / perPageCount ;
}
else{
allPage=allNum / perPageCount + 1;
}
return allPage;
}
/**
* 设置所有纪录数
* @param allNum 所有纪录数
*/
public void setAllNum(int allNum) {
this.allNum = allNum;
}
}
import test.Item;
import test.ItemDAO;
import java.util.*;
public class ItemPageCut extends PageCut{
/**
* 构造函数
*/
public ItemPageCut(){
setPerPageCount(10);
currentPage=1;
}
/**
* 获得item的具体记录
*/
public Item[] getRecords(){
Item[] item=null;
Collection col=ItemDAO.findByCondition(currentPage-1)*perPageCount+1,perPageCount);
Iterator it=col.iterator();
List list=new ArrayList();
while(it.hasNext()){
Item item=(Item)it.next();
list.add(item);
}
if(list.size()!=0){
items=new Item[list.size()];
for(int i=0;iitems[i]=(Item)list.get(i);
}
}
else{
return null;
}
return items;
}
}
/**
* 计算所有的纪录
*/
public void resetNum(){
this.setAllNum(ItemDAO.getRowCount());
getAllPage();
}
<%@ page import="Item" %>
<%
int pageCount=1;
//当前页面的参数
if(request.getParameter("pageCount")!=null){
pageCount=Integer.parseInt(request.getParameter("pageCount"));
}
//设置查询条件
itempage.setCurrentPage(pageCount);
Item[] item=itempage.getRecords();
itempage.resetNum(); //设置总数;
%>
<table border="0">
<tr>
<td>ID号</td>
<td>属性</td>
</tr>
<%if(item!=null){%>
<%for(int i=0;i<tr>
<td<%=item[i].getId()%></td>
}
}
%>
</tr>
</table>
首页
<%if(itempage.getCurrentPage()>1){%>
">上一页
<%}%>
<%if(itempage.getCurrentPage()下一页<%}%>
">尾页
共有 <%=item.getAllPage()%> 页 <%=item.getAllNum()%>条记录,现在是第 <%=item.getCurrentPage()%> 页