我想在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.tutorialspoint;
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("Hello Custom Tag!");
}
}以上代码很简单,其中**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.tutorialspoint.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,这应该产生以下结果:
Hello Custom Tag!
广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP