路要走,生活还得继续。

Hardworking Now

JSP自定义标记taglib学习笔记(一)

荒废”了很久学业,今天看了看书,重新看了下JSP,趁热打铁,于是打开了博客。


一、什么是Taglib?
标记库(tag library),是指由在JSP页面中使用的标记所组成的库。JSP容器推出时带有一个小型的、默认的标记库。而自定义标记库是为了某种特定的用途或者目的,将一些标记放到一起而形成的一种库。在一个团队中协同工作的开发者们可能会为各自的项目创建一些非常特定化的自定义标记库,同时也会创建一个通用自定义标记库,以供当前使用。
标准的JSP 标记可以调用JavaBeans组件或者执行客户的请求,这大大降低了JSP开发的复杂度和维护量。JSP技术也允许你自定义taglib,其实换句话说,taglib可以看成是对JSP标记的一种扩展,正如xml是对html的一种扩展一样。taglib通常定义在tag标签库中,这种标签库存放着你自己定义的tag标签。简而言之,如果使用taglib,那么你可以设计自己的JSP标记。
一个自定义的tag标签是用户定义的一种JSP标记。当一个含有自定义的tag标签的JSP页面被jsp引擎编译成servlet时,tag标签被转化成了对一个称为tag处理类的对象进行的操作。当JSP页面被jsp引擎转化为servlet后,实际上tag标签被转化成为了对tag处理类的操作。

二、自定义tag标签有哪些特性?
1.可以在JSP页面中自定义tag标签的属性;
2.可以访问JSP页面中的所有对象;
3.可以动态地修改页面输出;
4.可以彼此之间相互通信;
5.可以先创建一个JavaBeans组件,然后在一个tag中调用此JavaBeans组件,同时可以在另一个tag中调用它;
6.可以相互嵌套,可以在一个JSP页面中完成一些复杂的交互。

三、如何使用自定义Tag?
1) 声明此tag标签的tag库
如果要使用tag标签,则应用JSP的taglib指示符来指定其tag库(注意:taglib要在在使用此tag标签之前声明)

<%@ <a class="wp-first-item" href="http://lzllzl.cn/wp-admin/admin.php?page=mivhak&section=general">General</a>taglib uri=”/WEB-INF/tutorial-template.tld” prefix=”tt” %>

uri属性定义了唯一的标签库描述(以下简称TLD),它可以是直接是tld文件名或一个独一无二的名字。prefix是用来区别其它TLD中和本TLD中有重名的tag的一种手段。
TLD必须以.tld作为扩展名,并且存放在当前应用的WEB-INF目录或其子目录下。你可以通过它的文件名直接引用它,也可以通过别的方式间接地引用它。
以下taglib指示符直接引用一个TLD:

<taglib>
<taglib-uri>/tutorial-template</taglib-uri>
<taglib-location>/WEB-INF/tutorial-template.tld</taglib-location>
</taglib>

2) 实现此tag标签
为了实现tag标签,你有2种方法来存放tag处理类。
让tag处理类以.class的方式存放于当前应用的WEB-INF/class子目录下;
如果tag处理类是以JAR包的形式存在的话,那可以放在当前应用的WEB-INF/lib目录下,如果tag处理类要在多个应用中共享,那么它就应放在jsp服务器上的common/lib目录下,对于tomcat来说,就是tomcat/common/lib目录下。

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注