概念:Java Server Page(JSP)定制标记
主题
简介
定制标记是用于扩展 JSP API 的一种机制。定制标记支持声明性的 JSP 页扩展。使用 Java 实现 JSP 标记,但通过与 HTML 标记类似的标记在 JSP 中激活它们。尽管与 HTML 标记不同,但 JSP 标记由服务器而非客户端浏览器处理。
定制标记清楚地分隔了 Web 设计者(JSP 开发者)和 Java 程序员之间的职责。Java 程序员实现定制 JSP 标记。Web 设计者声明性地选择这些标记以激活 Java 实施。
JSP 设计者通过声明标记“调用”Java 代码,而 Java 开发人员在标记处理程序中开发代码,如下图中所示。

为提供定制标记,Java 开发人员必须提供以下两项:
标记处理程序
标记处理程序是实现 Tag 接口的类。两个库类使它易于提供标记处理程序。这两个类是 javax.servlet.jsp.TagSupport 和 javax.servlet.jsp.BodyTagSupport。TagSupport 类用于没有主体的标记;BodyTagSupport 用于有主体的标记。
以下是最简单的可能的标记处理程序实施的示例。

标记库描述符
为了让 JSP 能够使用 JSP 定制标记,必须创建一个标记库描述符。标记库描述符是一个 XML 文件,与标记处理程序一起部署在 Web 服务器上。
以下是一个简单的标记库文件,包含 HelloWorld 标记库描述符。
<?xml version="1.0" encoding="ISO-8859-1" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLScheme-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>simp</short-name>
<uri> http://www.inferdata.com/taglib/hello-world</uri>
<description>Simple example of a JSP custom tag</description>
<tag>
<name>hello</name>
<tag-class>com.inferdata.taglib.HelloWorld</tag-class>
<body-content>empty</body-content>
<description>Simple hello world tag</description>
</tag>
</taglib>
|