Custom Tag For Iteration : Custom Tag « JSP « Java Tutorial






MyTag.java

package taglib;

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

import java.io.IOException;

public class MyTag extends TagSupport 
{
  private int counter = 0;
  private String[] names = null;

  public int doStartTag()
  {
    names = (String[]) pageContext.getAttribute("names");
    return EVAL_BODY_INCLUDE;
  }

  public int doAfterBody() throws JspException
  {
    try{
      pageContext.getOut().print(" " + names[counter] + "<BR>");
    } catch(Exception e){
      throw new JspException(e.toString());
    }
    counter++;
    if(counter >= names.length) {
      return SKIP_BODY;
    }
    return EVAL_BODY_AGAIN;
  }
}

MyTag.tld

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE taglib PUBLIC 
                 "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
                 "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
  <tlib-version>1.0</tlib-version>
  <jsp-version>1.2</jsp-version>
  <short-name>TagExamples</short-name>
  <description>Example tags.</description>
  <tag>
    <name>iterator</name>
    <tag-class>taglib.MyTag</tag-class>
  </tag>
</taglib>

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
  <description>
  Example web application illustrating the use of tags in the
  "request" custom tag library, from the JAKARTA-TAGLIBS project.
  </description>
  <taglib>
    <taglib-uri>http://java2s.com/taglibs</taglib-uri>
    <taglib-location>/WEB-INF/MyTag.tld</taglib-location>
  </taglib>

  <security-role>
    <role-name>admin</role-name>
  </security-role>
</web-app>

Jsp page with custom tag

<%@ taglib prefix="l" uri="WEB-INF/MyTag.tld" %>
<HTML>
    <HEAD>
        <TITLE>Supporting Iterating Custom Tags</TITLE>
    </HEAD>

    <BODY>
        <H1>Supporting Iterating Custom Tags</H1>
        <%
            String[] names = new String[]{ "A", "B", "C", "D" };
            pageContext.setAttribute("names", names);
        %>

        <l:iterator>
            Cast member: 
        </l:iterator>
    </BODY>
</HTML>
  Download:  CustomTagForIteration.zip( 135 k)








23.58.Custom Tag
23.58.1.Custom Tag Support
23.58.2.Custom Tag For Outputing Message To Console
23.58.3.Custom Tag For Iteration
23.58.4.Jars For Custom Tag Development
23.58.5.Custom Tag With Property
23.58.6.Custom Tag Web XML Tag Lib
23.58.7.Custom Tag To Insert Text
23.58.8.Custom Tag To Get Parameter From PageContext
23.58.9.Extends Tag Support DoEndTag
23.58.10.Reference Tag Using Tag Dir
23.58.11.Repeat Tag
23.58.12.Custom Tag For Shuffling Color
23.58.13.Custom Tag For Display message
23.58.14.Custom Tag Without TLD
23.58.15.Custom Tag With Attributes
23.58.16.Custom Tag Web URI Definition
23.58.17.Custom Tag Using Beans
23.58.18.Custom Tag Setup Environment
23.58.19.Custom Tag Set Bean Value
23.58.20.Custom Tag Dynamic Attributes
23.58.21.Custom Tag As Template
23.58.22.Custom Tag Accepting Fragments