在以列表的形式显示数据时需要对页面进行翻页控制,基本在项目的各模块中都会用到。为了最大限度地实现翻页的可重用和易移植,利用组件的形式对翻页逻辑进行封装。
翻页控制器的分析
描述:
翻页控制器用来实现对WEB页面的翻页内容的显示和翻页的各种操作的控制。通过JSP调用,将分页内容显示到WEB页面。它支持多种方式和风格的显示。
翻页控制器的设计
下面分别创建翻页控制器的一个PageConfig类、一个Page类、一个PageView类。
· PageConfig.java
类
· 创建一个Page对象,Page.EMPTY_PAGE为空白页面
· 创建一个PageView对象
· 显示分页的内容:
按缺省形式显示
按指定形式显示
· 调用翻页控制器的例子
下面是在论坛板块中的一个JSP中调用的示例,用来显示所有的论坛板块列表,下面只列出部分代码:
此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/69068.html
翻页控制器的分析
描述:
翻页控制器用来实现对WEB页面的翻页内容的显示和翻页的各种操作的控制。通过JSP调用,将分页内容显示到WEB页面。它支持多种方式和风格的显示。
翻页控制器的设计
下面分别创建翻页控制器的一个PageConfig类、一个Page类、一个PageView类。
· PageConfig.java
类
类 | PageConfig |
声明 | public class |
描述 | 这个类用来保存页面属性的值,如每页显示几行等。 |
超类 | |
执行 |
属性描述
属性 | 属性描述 | 定义 |
[PageConfig] | ||
|--PAGE_SIZE | 页大小 | public static final int |
|--PAGE_SIZE_SMALL | 小型页面的大小 | public static final int |
|--PAGE_SIZE_NORMAL | 正常页面的大小 | public static final int |
|--PAGE_SIZE_BIG | 大型页面的大小 | public static final int |
|--PAGE_SIZE_BIGGER | 较大页面的大小 | public static final int |
|--PAGE_SIZE_BIGGEST | 最大页面的大小 | public static final int |
· Page.java
类
类 | Page |
声明 | public class |
描述 | 这个类用来保存页面属性的值,如每页显示几行等。 |
超类 | |
执行 | java.lang.Serializable |
属性描述
属性 | 名称 | 属性描述 | 数据类型 |
|--EMPTY_PAGE | 空白页面 | 描述一个空白页面,即不含内容的页面。 | Page对象 |
|--objects | 结果集列表 | 结果集列表 | java.util.List或java.util.Vector |
|--start | 开始记录号 | 开始记录号,从0开始 | 正整数和0 |
|--end | 结束记录号 | 结束记录号 | 正整数和0 |
|--viewStart | 显示在页面开始记录号 | 显示在页面开始记录号,从1开始 | 正整数 |
|--viewEnd | 显示在页面结束记录号 | 显示在页面结束记录号 | 正整数 |
|--hasPrevious | 是否有上一页的开关 | 是否有上一页的开关 | 布尔值 |
|--previousPageNumber | 上一页的页码 | 上一页的页码 | 正整数和0 |
|--hasNext | 是否有下一页的开关 | 是否有下一页的开关 | 布尔值 |
|--nextPageNumber | 下一页的页码 | 下一页的页码 | 正整数和0 |
|--total | 总行数 | 一共有多少行记录 | 正整数和0 |
|--totalPage | 总页数 | 一共有多少页 | |
|--currentPageNumber | 当前页 | 描述当前是第几页 | 正整数和0 |
|--pageSize | 页大小 | 描述每页有多少行 | 正整数和0 |
构造器
构造器 | 构造器描述 | 参数 |
[Page] | ||
|--Page(List l, int s, boolean hasNext) | 创建页面 | l 结果集s 开始记录号,从0开始hasNext 是否有下一页的开关 |
|--Page(List l, int s, boolean hasNext, int total) | 创建页面 | l 结果集s 开始记录号,从0开始hasNext 是否有下一页的开关total 一共有多少行记录 |
|--Page(List l, int s, int size, boolean hasNext, int total) | 创建页面 | l 结果集s 开始记录号,从0开始size 每页有多少行hasNext 是否有下一页的开关total 一共有多少行记录 |
|-- Page(List l, int num, int size, int total) | 创建页面 | l 结果集num 当前是第几页size 每页有多少行total 一共有多少行记录 |
|-- Page(List l) | 创建页面,不进行分页 | l 结果集 |
方法
方法 | 方法描述 | 返回值 |
[Page] | ||
|--autoCalculate () | 自动计算,根据当前页、页大小、总行数计算出其它属性的值 | private void |
|--getList() | 获得结果集 | public List |
|--getViewStart() | 获得显示在页面的开始记录号,从1开始 | public int |
|--getViewEnd() | 获得显示在页面的结束记录号 | public int |
|--hasNextPage() | 是否有下一页 | public boolean |
|--hasPreviousPage () | 是否有上一页 | public boolean |
|--getPreviousPageNumber () | 获得上一页的页码 | public int |
|--getNextPageNumber () | 获得下一页的页码 | public int |
|--getTotal () | 获得结果集中记录总行数 | public int |
|--getTotalPage () | 获得总页数 | public int |
|--getCurrentPageNumber () | 获得当前页码 | public int |
|--getPageSize () | 获得每页多少行记录 | public int |
|--getStartOfNextPage () | 获得下一页在结果集中开始的记录号,从0开始 | public int |
|--getStartOfPreviousPage () | 获得上一页在结果集中开始的记录号,从0开始 | public int |
|--getSize() | 获得当前页包括的记录行数 | public int |
|--isEmpty() | 判断当前页面是否是空白页面,如果当前页面是空白页面,返回true,否则,返回false | public boolean |
PageView.java
类
类 | PageView |
声明 | public class |
描述 | 通过JSP调用,将分页内容显示到WEB页面。不支持图片、按钮等,只支持文字。用法:在JSP页面按如下形式定义: |
超类 | |
执行 |
属性描述
属性 | 名称 | 属性描述 | 数据类型 |
[PageView] | |||
|--currentUrl | 当前页面的URL | 当前页面的URL | 字符串 |
|--style | 风格 | 风格 | 字符串 |
|--useSquareBrackets | 是否加[]的开关 | 在"上一页"两边是否加上"["和"]" | 布尔值 |
|--page | WEB页面 | WEB页面 | Page对象 |
构造器
构造器 | 构造器描述 | 参数 |
[PageView] | ||
|-- PageView (HttpServletRequest request,JspWriter out,Page page)) | 创建一个分页内容 | request 客户端请求out 页面输出对象page WEB页面 |
方法
方法 | 方法描述 | 返回值 |
[PageView] | ||
|--setVisible(boolean visible) | 按缺省形式显示分页内容,如果visible为true,则显示分页内容,否则,不显示分页内容 | public void |
|--setVisible(boolean visible,int style,int order) | 按指定形式显示分页内容,如果visible为true,则显示分页内容,否则,不显示分页内容 | public void |
|--setVisible(boolean visible,boolean useSquareBrackets,int style,int order) | 按指定形式显示分页内容,如果visible为true,则显示分页内容,否则,不显示分页内容 | public void |
|--viewPage(boolean useSquareBrackets,int style,int order) | 按指定形式显示分页内容,order为0,表示完整形式,按如下顺序显示:共计:18 分页:2 当前页:1 每页:10 首页 前页 后页 尾页 转到□□□□order为1,表示简洁形式,按如下顺序显示:前页 后页 尾页 1/2order为2,表示完整形式2,按如下顺序显示:共计:18 每页:10 转到□□□□ 首页 前页 后页 尾页 1/2 | public void |
翻页控制器的编码
只需按翻页控制器的设计进行编码,这里不用再讲了。
翻页控制器组件的源代码
a)PageConfig.java
b)Page.java
c)PageView.java
源代码:立即下载
翻页控制器的调用
翻页控制器的调用实在太简单了,调用方法:
· 导入翻页控制器包
|
· 创建一个Page对象,Page.EMPTY_PAGE为空白页面
|
· 创建一个PageView对象
|
· 显示分页的内容:
按缺省形式显示
|
按指定形式显示
|
· 调用翻页控制器的例子
下面是在论坛板块中的一个JSP中调用的示例,用来显示所有的论坛板块列表,下面只列出部分代码:
|