我想在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

回到顶部