深入体验JavaWeb开发内幕——打包自定义标签库及自定义分页标签
2012-11-26 17:14
204 查看
打包自定义标签库
把自定义的标签打到一个jar包中,就是要把标签处理类的字节码和标签库描述文件按照一定的存放方式添加到一个jar包中。具体做法如下。把标签处理类字节码和标签库描述文件按如下所示结构:
其中mytag.tld标签库描述符文件要放置在jar文件的META-INF目录下。
标签处理类字节码的根目录和META-INF目录平级放置。
另外也可以通过手动使用jar命令来创建jar文件:
jar cvf mytaglib_0.9.jar META-INF com
完成这两个步骤之后,一个自定义标签库jar包就打好了,可以把它添加到任何想使用这个标签库的Web应用程序的WEB-INF/lib目录下使用了。
自定义分页标签
分页标签的使用方式如下:<q:pager pageNo="当前页号" pageSize="每页要显示的记录数"recordCount="总记录数" url="要跳转的URI"/>
通过给这个标签传入当前页号、每页要显示的记录数、总记录数和要跳转的URI,这个标签就可以生成翻页的HTML元素。
标签处理类
这个标签只是通过指定属性值就可以生成所有的翻页元素,因此这个标签不需要主体,可以直接继承自TagSupport类:publicclass PagerTag extends TagSupport {...}
然后为这个标签定义4个属性,给它们提供setter方法,以便使用标签时,从外部传值进来。
最主要的逻辑实现都是在doStartTag()方法中,首先通过总记录数和每页要显示的记录数计算出总页数:
int pageCount = (recordCount + pageSize - 1) / pageSize;
编写要输出到响应的StringBuilder实例。
把请求对象中获取的所有请求参数都作为隐藏表单域(<inputtype=“hidden”>)生成到一个form表单中:
生成翻页的HTML元素。这一段逻辑稍微复杂一些。
生成“总记录数和总页数”
是否要显示“上一页”超链接的逻辑处理。
如果总页数超过5页,显示“…”
当前页和它附近页的显示处理
如果总页数比当前页数超过2页,显示“...”
是否要显示“下一页”超链接的逻辑处理
在标签库描述符文件描述这个标签的信息
在页面中使用该分页标签
用taglib指令引用该标签库描述文件:
<%@ taglib uri="http://blog.csdn.net/qjyong/tags/pager"prefix="q"%>
为该分页标签准备好一些样式,让翻页元素更美观:
用代码片段显示数据
调用分页标签
创建一个TestPagerTagServlet的Servlet,用来准备测试数据,并为分页标签准备好参数值,然后转发到测试页。
好了,到这里,关于自定义标签的知识就已经介绍完了,希望对你能有所帮助!
相关文章推荐
- 深入分析JavaWeb 25 -- 自定义标签开发案例和打包自定义标签库
- 深入分析JavaWeb Item25 -- 自定义标签开发案例和打包自定义标签库
- 将自定义标签打包为jar包并提供给JSP使用
- 自定义分页标签
- 一个相当好的自定义标签---分页(一)
- 分析自定义数据分页标签的案例
- 这是我们项目中的分页代码,是用JSTL + 自定义标签文件 + JAVABEAN实现的
- struts2、hibernate 分页(自定义标签)
- struts2自定义分页标签
- 菜鸟学Android笔记(四十七):自定义标签开发案例及打包
- 超简单的自定义标签封装实现的JSP分页显示功能
- [j2ee][自定义分页标签
- 自定义标签打包后使用
- JSP自定义分页标签TAG全过程
- 一个相当好的自定义标签---分页
- java自定义分页标签
- 自定义分页标签详解
- 一个相当好的自定义标签---分页(二)
- java自定义分页标签
- struts2自定义分页标签