我想在JSP中创建一个自定义标签。如何在JSP中编写自定义标签?
定制标记是用户定义的JSP语言元素。将包含定制标记的JSP页面转换为servlet时,该标记将转换为对称为标记处理程序的对象的操作。然后,当执行JSP页面的servlet时,Web容器将调用这些操作。
JSP标记扩展允许您创建可以直接插入JavaServer Page中的新标记。JSP 2.0规范引入了用于编写这些定制标记的简单标记处理程序。
要编写自定义标签,只需扩展SimpleTagSupport类并覆盖doTag()方法,即可在其中放置代码以生成标签内容。
创建“ Hello”标签
考虑您要定义一个名为<ex:Hello>的自定义标签,并且您想以以下方式使用它而不使用主体-
<ex:Hello />
要创建自定义JSP标记,必须首先创建一个充当标记处理程序的Java类。现在让我们如下创建HelloTag类:
package com.nhooo;import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.io.*;
public class HelloTag extends SimpleTagSupport {
public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();
out.println("您好自定义标签!");
}
}
上面的代码具有简单的编码,其中doTag()方法使用getJspContext()方法获取当前的JspContext对象,并使用它发送“ Hello Custom Tag!”。到当前的JspWriter对象
让我们编译上面的类并将其复制到环境变量CLASSPATH中可用的目录中。最后,创建以下标记库文件:<Tomcat安装目录> webapps \ ROOT \ WEB-INF \ custom.tld。
<taglib><tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>Example TLD</short-name>
<tag>
<name>Hello</name>
<tag-class>com.nhooo.HelloTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
现在,让我们在JSP程序中使用上面定义的定制标记Hello,如下所示:
<%@ taglib prefix = "ex" uri = "WEB-INF/custom.tld"%><html>
<head>
<title>A sample custom tag</title>
</head>
<body>
<ex:Hello/>
</body>
</html>
调用上述JSP,这将产生以下结果-
您好自定义标签!
以上是 我想在JSP中创建一个自定义标签。如何在JSP中编写自定义标签? 的全部内容, 来源链接: utcz.com/z/354985.html