自定義標籤的實例

標籤程序 HelloTag_Interface.java

package tag;

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.util.Hashtable;
import java.io.Writer;
import java.io.IOException;
import java.util.Date;

public class HelloTag_Interface implements javax.servlet.jsp.tagext.Tag {
  private PageContext pageContext;
  private Tag parent;
  public HelloTag_Interface() {
    super();
  }
  public void setPageContext(final javax.servlet.jsp.PageContext pageContext) {
    this.pageContext = pageContext;
  }
  public void setParent(final javax.servlet.jsp.tagext.Tag parent) {
    this.parent = parent;
  }

  public int doStartTag() throws javax.servlet.jsp.JspTagException {
    return SKIP_BODY;
  }
 
  public int doEndTag() throws javax.servlet.jsp.JspTagException {
    try {
      pageContext.getOut().write("Hello, World!");
    } catch(java.io.IOException e) {
      throw new JspTagException("IO Error" + e.getMessage());
    }
    return EVAL_PAGE;
  }

  public void release() {}

  public javax.servlet.jsp.tagext.Tag getParent() {
    return parent;
  }
}

 

標籤庫描述文件mytag.tld

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE taglib PUBLIC
                 "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
                 "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
 
  <tlibversion>1.0</tlibversion>
  <jspversion>1.1</jspversion>
  <shortname>User</shortname>
  <info>
    This tag library contains employee tag extensions
  </info>

  <tag>
    <name>hello_int</name>
    <tag-class>tag.HelloTag_Interface</tag-class>
    <body-content>empty</body-content>
  </tag>
</taglib>

 

web.xml文件的配置

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>My Web Application</display-name>
<description>
A application for test.
</description>
<taglib>
  <taglib-uri>/demotag</taglib>
  <taglib-location>/WEB-INF/mytag.tld</taglib-location>
</taglib>
</web-app>

顯示頁面

<%@ taglib uri="/demotag" prefix="hello" %>
<%@ page contentType="text/html;charset=gb2312" language="java"%>
<html>
  <head>
    <title>first cumstomed</title>
    <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
  </head>
  <body>
    <p>以上的內容從taglib中顯示:</p>
    <p><i><hello:hello_int/></i><p>
  </body>
 
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章