本应用的实现的过程是根据读取当前页面号码和发出请求页面的相对偏移值, 在数据库中读取指定数量的记录并以HashMap对象形式封装到一个List,其中每条记录中的各列以Object实例形式存于前面所讲的HashMap对象中.这样做的好处是便于代码的重用性, 我们可以用它做任何记录集片段的读取,而不必做任何代码的修改,你要做的就是根据你的具体需要单独写个类调用本分页类.
由于这次实现设计的代码有些长,为了便于网友看的清晰.我将分文介绍每个类, 最后给出我做的一个留言本的分页实现过程.
在这篇里我将先发出分页类(PageSplit.java),并做必要的解释, 在讲该类之前我先说说一个也很重要的类: PageInfo.java.该类没别的功能实现. 都是一些getter和setter方面, 以在页面根据属性值显示链接. 主要作为DTO对象在业务逻辑层和页面显示层传递参数. 该类的代码如下:
package net.eliry;
public class PageInfo
{
private int totalPage=-1; //要分页的总页数; 考虑到有可能为0,所以默认为-1,
private int curPage=1; //当前显示的页面数, 初始值为1,即为首页;
private boolean first; //是否是首页;
private boolean pre; //是否有前一页;
private boolean next; //是否有下一页;
private boolean last; //是否是最后一页;
private int pageSize=2; //每页显示的记录数, 默认为2;
private int totalItem=-1; //要分页的总记录数; 考虑到有可能为0,所以默认为-1,
private int curItem=2; //当前页面显示的记录数;
public int getTotalPage()
{
return totalPage;
}
public void setTotalPage(int totalPage)
{
this.totalPage=totalPage;
}
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 getTotalItem()
{
return totalItem;
}
public void setTotalItem(int totalItem)
{
this.totalItem=totalItem;
}
public int getCurItem()
{
return curItem;
}
public void setCurItem(int curItem)
{
this.curItem=curItem;
}
public boolean getFirst()
{
return first;
}
public void setFirst(boolean first)
{
this.first=first;
}
public boolean getPre()
{
return pre;
}
public void setPre(boolean pre)
{
this.pre=pre;
}
public boolean getNext()
{
return next;
}
public void setNext(boolean next)
{
this.next=next;
}
public boolean getLast()
{
return last;
}
public void setLast(boolean last)
{
this.last=last;
}
}
下一篇我将介绍分页的主角类PageSplit.java. :-) !.............