通用分页实现及其OO设计探讨
三、通用分页框架需要解决的问题
作为一个通用分页框架,
1. 应该不依赖于任何其它框架
2. 应该支持多种数据库
3. 应该可以应用于任何web框架中,如:struts,spring等。
4. 应该把数据访问的具体实现留给用户去实现。
5. 应该实现关键的算法和过程,如:计算总页数,所需的实始化动作。
6. 应该减化Contrller控制器的代码,以往的分页技术在Contrller中存在太多的if…else代码。十分难懂,应该由一个辅助类来实现。
7. 应该减化jsp页面的代码,页面应该没有任何与分页相关的计算。应该由分页对象来实现。
8. 应该支持两种分页方式,采用session或不采用session由用户控制。
四、具体实现
1.通用分页接口。定义接口可以有更多不同的实现,接口只声明了分页应该具有的公共行为。
ViewPage.java
/**//**
* 分页接口
* @author ex_yuanguangdong
*
*/
public interface ViewPage ...{
![]()
![]()
![]()
/**//**
* 获取总页数
* @return 总页数
*/
public int getPageCount();
![]()
![]()
/**//**
* 获得页面大小
* @return 页面大小
*/
public int getPageSize();
![]()
![]()
/**//**
* 设置页面大小
* @param size
*/
public void setPageSize(int size);
/**//**
* 获得当前页数据
* @return 数据列表
*/
public List getPageData();
![]()
![]()
/**//**
* 获得当前页索引号
* @return 当前页索引号
*/
public int getPageIndex();
![]()
/**//**
* 获得当前页记录总数
* @return 当前页记录总数
*/
public int getPageRows();
![]()
/**//**
* 是否有下一页
* @return
*/
public boolean getHashNextPage();
![]()
![]()
/**//**
* 是否有上一页
* @return
*/
public boolean getHashPreviousPage();
![]()
/**//**
* 转到尾页
*
*/
public void gotoLastPage();
/**//**
* 转到首页
*
*/
public void gotoFirstPage();
![]()
/**//**
* 是否首页
* @return
*/
public boolean isFirstPage();
![]()
/**//**
* 是否尾页
* @return
*/
public boolean isLastPage();
![]()
/**//**
* 转到上一页
*
*/
public void gotoPreviousPage();
![]()
/**//**
* 转到下一页
*
*/
public void gotoNextPage();
![]()
/**//**
* 转到指定页面,pageIndex小于1时,转到第一页;pageIndex大于总页数时,转到最尾页
* @param pageIndex 指定的页号
*/
public void gotoPage(int pageIndex);
![]()
/**//**
* 获取当前页第一条记录的记录号
* @return int 当前页第一条记录的记录号
*/
public int getPageFirstRecord();
![]()
/**//**
* 获取当前页最后一条记录的记录号
* @return int 当前页最后一条记录的记录号
*/
public int getPageLastRecord();
![]()
}
0
相关文章
