以下讲解JSP系统中模板库和标签库的实现 。
标签库的规划和设计在整个系统设计中至关重要,它关系到了代码重用的程度和系统运行的效率。它的规划应该遵循以下原则。
1)在标签中应该尽量少的包含静态的HTML。对于一般用户来说,标签是透明的。用户不能够查看和修改标签。如果在标签中包含了过多的静态HT-ML语句,将影响用户对页面的静态效果的修改和完善,限制标签的使用。
2)尽量提高代码的重用度。在对JSP应用进行分类是尽量把公用的JSP应用提取出来,形成标签。而不用在每个标签中都重复实现该应用。这样在以后要对该应用进行修改和完善时,只需对这一个标签进行修改即可,易于代码的维护。
3)方便用户的使用。在设计标签库时,应该充分考虑到用户的使用情况,使用户能够很容易和方便地理解和使用标签。
①标签库的定义:定义一个标签库,必须首先定义一个标签库描述文件(TLD)。这是一个基于XML的脚本文件,在这个文件中定义了XML的版本、所使用的编码、标签库的版本、所使用的JSP的版本、标签库的名称和这个库中所包含的所有的标签的定义和参数描述,包括标签的名称,标签所对应的Java类,标签的描述信息等。
②标签的实现:一个标签就是一个特殊的Java
类,这个类必须继承TagSupport类,这个类是在javax.servlet.jsp.tagext包中定义的。在标签类中,包含了这个标签的参数初始化方法(Set/Get)、标签的主体处理方法(Handler)以及供下一级标签调用的方法等。
③模板的实现:一个模板就是一个含有标签引用的JSP文件。为了在模板中引用所定义的标签,必须首先引入标签库。
<%@taglib uri=“tag.tld”prefix=“ctag”%>
其中uri指定标签库描述文件的路径;prefix指定引用标签时所使用的前缀。
在模板中引用指定的标签时,使用引入标签库时所指定的前缀,指定标签的名称;为标签的参数赋值。