ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# JSP 自定义标签 > 原文: [https://beginnersbook.com/2014/01/jsp-custom-tags-with-example-jsp-tutorial/](https://beginnersbook.com/2014/01/jsp-custom-tags-with-example-jsp-tutorial/) 用户定义的标签称为**自定义标签**。在本教程中,我们将了解如何**创建自定义标签**并在 JSP 中使用它。 要创建自定义标签,我们需要三件事: **1)标签处理程序类**:在此类中,我们指定自定义标签在 JSP 页面中使用时将执行的操作。 **2)TLD 文件**:标签描述符文件,我们将在其中指定我们的标签名称,标签处理程序类和标签属性。 **3)JSP 页面**:我们将使用自定义标签的 JSP 页面。 **示例:** 在下面的示例中,我们创建了一个自定义标签`MyMsg`,当在 JSP 页面中使用时,它将显示消息`This is my own custom tag`。 **标签处理程序类:** 标签处理程序类应该实现`Tag`/`IterationTag`/`BodyTag`接口,或者它也可以扩展`TagSupport`/`BodyTagSupport`/`SimpleTagSupport`类。所有支持自定义标签的类都存在于`javax.servlet.jsp.tagext`中。在下面我们扩展了类`SimpleTagSupport`。 `Details.java` ```html package beginnersbook.com; import javax.servlet.jsp.tagext.*; import javax.servlet.jsp.*; import java.io.*; public class Details extends SimpleTagSupport { public void doTag() throws JspException, IOException { /*This is just to display a message, when * we will use our custom tag. This message * would be displayed */ JspWriter out = getJspContext().getOut(); out.println("This is my own custom tag"); } } ``` **TLD 文件** 此文件应出现在以下位置:`Project Name/WebContent/WEB-INF/`,它应该有`.tld`扩展名。 **注:** `<name>`标签:自定义标签名称。在这个例子中,我们将它作为`MyMsg` `<tag-class>`标签给出:完全限定的类名。我们的标签处理程序类`Details.java`在包`beginnersbook.com` 中,因此我们将值赋予`beginnersbook.com.Details`。 `message.tld` ```html <taglib> <tlib-version>1.0</tlib-version> <jsp-version>2.0</jsp-version> <short-name>My Custom Tag</short-name> <tag> <name>MyMsg</name> <tag-class>beginnersbook.com.Details</tag-class> <body-content>empty</body-content> </tag> </taglib> ``` **在 JSP 中使用自定义标签:** 上面我们创建了一个名为`MyMsg`的自定义标签。我们将在这里使用它。 **注意**:`taglib`指令应该在`uri`字段中有 TLD 文件路径。上面我们创建了`message.tld`文件,因此我们给出了该文件的路径。 选择任何前缀并在`taglib`指令的前缀字段中指定它。这里我们将其指定为`myprefix`。 自定义标签的调用方式如下:`<prefix:tagName/>;`。我们的前缀是`myprefix`,标签名称是`MyMsg`,所以我们在下面的 JSP 页面中将其称为`<myprefix:MyMsg/>`。 ```html <%@ taglib prefix="myprefix" uri="WEB-INF/message.tld"%> <html> <head> <title>Custom Tags in JSP Example</title> </head> <body> <myprefix:MyMsg/> </body> </html> ``` **输出:** ```html This is my own custom tag ```