<tag> <description>Prints this is my first tag</description> <name>hello</name> <tag-class>jsp2.examples.simpletag.HelloTag</tag-class> <body-content>empty</body-content> </tag> 最后再编写一个使用上述标签的JSP页面文件,见代码示例8。 代码示例8: helloworld.jsp <%@ taglib prefix="mytag" uri="/WEB-INF/jsp2/jsp2-example-taglib.tld" %> <HTML> <HEAD> <TITLE>Simple Tag Handler</TITLE> </HEAD> <BODY> <H2>Simple Tag Handler</H2> <P> <B>My first tag prints</B>: <mytag:hello/> </BODY> </HTML> 要运行这个例子: - 复制HelloTg.java并保存到C:\Tomcat5.0\webapps\jsp-examples\WEB-INF\classes\jsp2\examples\simpletag下;
- 使用javac编译HelloTag.java;
- 把代码示例7中的标签描述符添加到文件C:\Tomcat5.0\webapps\jsp-examples\WEB-INF\jsp2\jsp2-example-taglib.tld中的</taglib>之前;
- 复制helloworld.jsp并保存到c:\Tomcat5.0\webapps\jsp-examples\jsp2-tutorial目录中;
- 用浏览器打开helloworld.jsp。
如果一切正常,应该会看到类似如图4所示的画面。 图4:简单标签处理器
标签文件使用简单标签扩展机制的另一种方法是通过标签文件。标签文件是一种资源文件,网页作者可以利用它抽取一段JSP代码,通过定制功能来实现代码的复用。换句话说,标签文件允许JSP网页作者使用JSP语法创建可复用的标签库。标签文件的扩展名必须是“.tag”。 为说明使用标签文件是多么容易,考虑一下代码示例9。没错,这就是一个标签文件! 代码示例9: greetings.tag Hello there. How are you doing? 一旦定义了标签文件,就可以在JSP网页的编写中使用这种定制的功能。比如代码示例10中的JSP网页。 代码示例10: chat.jsp <%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %> <HTML> <HEAD> <TITLE>JSP 2.0 Examples - Hello World Using a Tag File</TITLE> </HEAD> <BODY> <H2>Tag File Example</H2> <P> <B>The output of my first tag file is</B>: <tags:greetings/> </BODY> </HTML> 要运行这个例子: - 复制标签文件greetings.tags并保存在c:\Tomcat5.0\webapps\jsp-examples\WEB-INF\tags 目录下;
- 复制JSP网页文件char.jsp并保存在c:\Tomcat5.0\webapps\jsp-examples\jsp2-tutorial 目录下;
- 用浏览器打开chat.jsp文件。
如果一切正常,应该会看到类似如图5所示的窗口。 图5:简单的标签文件
注意: 重要的是要注意到这里没有为问候标签编写TLD,而是创建了一个标签文件并放在特殊的目录中,然后用taglib指令导入并直接使用它。
另一个标签文件的例子标签文件可以作为模板使用。考虑代码示例11中的标签文件display.tag,这个例子是根据Tomcat 5.0中的面板的例子改写的。指令attribute类似于TLD中的<attribute>元素,允许声明自定义的动作属性。 代码示例11: display.tag <%@ attribute name="color" %> <%@ attribute name="bgcolor" %> <%@ attribute name="title" %> <TABLE border="0" bgcolor="${color}"> <TR> <TD><B>${title}</B></TD> </TR> <TR> <TD bgcolor="${bgcolor}"> <jsp:doBody/> </TD> </TR> </TABLE> |