技术开发 频道

通用分页实现及其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
相关文章