## javax.servlet.jsp.tagext
Class TagSupport

    java.lang.Object
      javax.servlet.jsp.tagext.TagSupport

All Implemented Interfaces:
  IterationTag, java.io.Serializable, Tag

Direct Known Subclasses:
  BodyTagSupport

public class TagSupport
extends java.lang.Object
implements IterationTag, java.io.Serializable

A base class for defining new tag handlers implementing Tag.

The TagSupport class is a utility class intended to be used as the base class for new tag handlers. The TagSupport class implements the Tag and IterationTag interfaces and adds additional convenience methods including getter methods for the properties in Tag. TagSupport has one static method that is included to facilitate coordination among cooperating tags.

Many tag handlers will extend TagSupport and only redefine a few methods.

See Also:
  Serialized Form

Field Summary
`protected java.lang.String` `id`
`protected PageContext` `pageContext`

Fields inherited from interface javax.servlet.jsp.tagext.IterationTag
`EVAL_BODY_AGAIN`

Fields inherited from interface javax.servlet.jsp.tagext.Tag
`EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

Constructor Summary
`TagSupport()` Default constructor, all subclasses are required to define only a public constructor with the same signature, and to call the superclass constructor.

Method Summary
`int` `doAfterBody()` Default processing for a body
`int` `doEndTag()` Default processing of the end tag returning EVAL_PAGE.
`int` `doStartTag()` Default processing of the start tag, returning SKIP_BODY.
`static Tag` `findAncestorWithClass(Tag from, java.lang.Class klass)` Find the instance of a given class type that is closest to a given instance.
`java.lang.String` `getId()` The value of the id attribute of this tag; or null.
`Tag` `getParent()` The Tag instance most closely enclosing this tag instance.
`java.lang.Object` `getValue(java.lang.String k)` Get a the value associated with a key.
`java.util.Enumeration` `getValues()` Enumerate the values kept by this tag handler.
`void` `release()` Release state.
`void` `removeValue(java.lang.String k)` Remove a value associated with a key.
`void` `setId(java.lang.String id)` Set the id attribute for this tag.
`void` `setPageContext(PageContext pageContext)` Set the page context.
`void` `setParent(Tag t)` Set the nesting tag of this tag.
`void` `setValue(java.lang.String k, java.lang.Object o)` Associate a value with a String key.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### id

    protected java.lang.String id

### pageContext

    protected PageContext pageContext

Constructor Detail

### TagSupport

    public TagSupport()

  Default constructor, all subclasses are required to define only a public constructor with the same signature, and to call the superclass constructor. This constructor is called by the code generated by the JSP translator.

Method Detail

### findAncestorWithClass

    public static final Tag findAncestorWithClass(Tag from,
                                                  java.lang.Class klass)

  Find the instance of a given class type that is closest to a given instance. This method uses the getParent method from the Tag interface. This method is used for coordination among cooperating tags.

  The current version of the specification only provides one formal way of indicating the observable type of a tag handler: its tag handler implementation class, described in the tag-class subelement of the tag element. This is extended in an informal manner by allowing the tag library author to indicate in the description subelement an observable type. The type should be a subtype of the tag handler implementation class or void. This addititional constraint can be exploited by a specialized container that knows about that specific tag library, as in the case of the JSP standard tag library.

  When a tag library author provides information on the observable type of a tag handler, client programmatic code should adhere to that constraint. Specifically, the Class passed to findAncestorWithClass should be a subtype of the observable type.

  Parameters:
    `from` - The instance from where to start looking.
    `klass` - The subclass of Tag or interface to be matched

### doStartTag

    public int doStartTag()
                   throws JspException

  Default processing of the start tag, returning SKIP_BODY.

  Specified by:
    `doStartTag` in interface `Tag`
  Throws:
    `JspException`
  See Also:
    `Tag.doStartTag()`

### doEndTag

    public int doEndTag()
                 throws JspException

  Default processing of the end tag returning EVAL_PAGE.

  Specified by:
    `doEndTag` in interface `Tag`
  Throws:
    `JspException`
  See Also:
    `Tag.doEndTag()`

### doAfterBody

    public int doAfterBody()
                    throws JspException

  Default processing for a body

  Specified by:
    `doAfterBody` in interface `IterationTag`
  Returns:
    SKIP_BODY
  Throws:
    `JspException`
  See Also:
    `IterationTag.doAfterBody()`

### release

    public void release()

  Release state.

  Specified by:
    `release` in interface `Tag`
  See Also:
    `Tag.release()`

### setParent

    public void setParent(Tag t)

  Set the nesting tag of this tag.

  Specified by:
    `setParent` in interface `Tag`
  Parameters:
    `t` - The parent Tag.
  See Also:
    `Tag.setParent(Tag)`

### getParent

    public Tag getParent()

  The Tag instance most closely enclosing this tag instance.

  Specified by:
    `getParent` in interface `Tag`
  See Also:
    `Tag.getParent()`

### setId

    public void setId(java.lang.String id)

  Set the id attribute for this tag.

  Parameters:
    `id` - The String for the id.

### getId

    public java.lang.String getId()

  The value of the id attribute of this tag; or null.

### setPageContext

    public void setPageContext(PageContext pageContext)

  Set the page context.

  Specified by:
    `setPageContext` in interface `Tag`
  Parameters:
    `pageContext` - The page context for this tag handler.
  See Also:
    `Tag.setPageContext(javax.servlet.jsp.PageContext)`

### setValue

    public void setValue(java.lang.String k,
                         java.lang.Object o)

  Associate a value with a String key.

  Parameters:
    `k` - The key String.
    `o` - The value to associate.

### getValue

    public java.lang.Object getValue(java.lang.String k)

  Get a the value associated with a key.

  Parameters:
    `k` - The string key.

### removeValue

    public void removeValue(java.lang.String k)

  Remove a value associated with a key.

  Parameters:
    `k` - The string key.

### getValues

    public java.util.Enumeration getValues()

  Enumerate the values kept by this tag handler.

Copyright © 1999-2002 The Apache Software Foundation. All Rights Reserved.