首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

经验15-自定义分页标签

2012-11-26 
心得15--自定义分页标签1.自定义分页标签?分页标签的使用方式如下:q:pager pageNo当前页号 pageSize

心得15--自定义分页标签

1.  自定义分页标签

?         分页标签的使用方式如下:
<q:pager pageNo="当前页号" pageSize="每页要显示的记录数" recordCount="总记录数" url="要跳转的URI" />。通过给这个标签传入当前页号、每页要显示的记录数、总记录数和要跳转的URI,这个标签就可以生成翻页的HTML元素。

?         标签处理类

?         这个标签只是通过指定属性值就可以生成所有的翻页元素,因此这个标签不需要主体,可以直接继承自TagSupport类:public class PagerTag extends TagSupport {...}

?         然后为这个标签定义4个属性,给它们提供setter方法,以便使用标签时,从外部传值进来。

?         最主要的逻辑实现都是在doStartTag()方法中,首先通过总记录数和每页要显示的记录数计算出总页数:
int pageCount = (recordCount + pageSize - 1) / pageSize; 一般情况不用这种方法计算总页数,常用比较友好点的算法:int pageCount = recordCound(总记录数) % pageSize ? nowPage(总页数):nowPage+1;

编写要输出到响应的StringBuilder实例。

?         把请求对象中获取的所有请求参数都作为隐藏表单域(<input type=“hidden”>)生成到一个form表单中:

?         生成翻页的HTML元素。这一段逻辑稍微复杂一些。

?         生成“总记录数和总页数”    

?         是否要显示“上一页”超链接的逻辑处理。

?         如果总页数超过5页,显示“…”

?         当前页和它附近页的显示处理

?         如果总页数比当前页数超过2页,显示“...”

?         是否要显示“下一页”超链接的逻辑处理

?         在标签库描述符文件描述这个标签的信息

?         在页面中使用该分页标签

?         用taglib指令引用该标签库描述文件:
<%@ taglib uri="http://blog.csdn.net/qjyong/tags/pager" prefix="q"%>

?         为该分页标签准备好一些样式,让翻页元素更美观:

?         用代码片段显示数据

?         调用分页标签

?         创建一个TestPagerTagServlet的Servlet,用来准备测试数据,并为分页标签准备好参数值,然后转发到测试页。

 

热点排行