如何在JSP里自定义标签

时间:2022-07-22
本文章向大家介绍如何在JSP里自定义标签,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

自定义标签是用户定义的JSP语言元素。当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web container调用那些操作。

假设我们想自定义一个叫做hello的标签:

<ex:Hello />

新建一个Java类:

package action;

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!");
  }
}

在jsp中使用这个标签页:

<%@ taglib prefix="ex" uri="WEB-INF/custom.tld"%>
<html>
  <head>
    <title>A sample custom tag</title>
  </head>
  <body>
    <ex:Hello/>
  </body>
</html>

新建一个custom.tld, 内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<taglib>
  <tlib-version>1.0</tlib-version>
  <jsp-version>2.0</jsp-version>
  <short-name>Example TLD</short-name>
  <uri>http://www.sap.cn/tag1.0</uri>
  <tag>
    <name>Hello</name>
    <tag-class>action.HelloTag</tag-class>
    <body-content>empty</body-content>
  </tag>
</taglib>

最后运行时的效果: