org.springframework.web.servlet.tags.form

## Class TagWriter

- java.lang.Object
- - org.springframework.web.servlet.tags.form.TagWriter

-     public class TagWriter
      extends Object

  Utility class for writing HTML content to a `Writer` instance.

  Intended to support output from JSP tag libraries.

  Since:
    2.0
  Author:
    Rob Harrop, Juergen Hoeller

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TagWriter(PageContext pageContext)` Create a new instance of the `TagWriter` class that writes to the supplied `PageContext`.
    `TagWriter(Writer writer)` Create a new instance of the `TagWriter` class that writes to the supplied `Writer`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `appendValue(String value)` Close the current opening tag (if necessary) and appends the supplied value as inner text.
    `void` | `endTag()` Close the current tag.
    `void` | `endTag(boolean enforceClosingTag)` Close the current tag, allowing to enforce a full closing tag.
    `void` | `forceBlock()` Indicate that the currently open tag should be closed and marked as a block level element.
    `void` | `startTag(String tagName)` Start a new tag with the supplied name.
    `void` | `writeAttribute(String attributeName, String attributeValue)` Write an HTML attribute with the specified name and value.
    `void` | `writeOptionalAttributeValue(String attributeName, String attributeValue)` Write an HTML attribute if the supplied value is not `null` or zero length.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TagWriter

          public TagWriter(PageContext pageContext)

      Create a new instance of the `TagWriter` class that writes to the supplied `PageContext`.
      Parameters:
        `pageContext` - the JSP PageContext to obtain the `Writer` from

    - #### TagWriter

          public TagWriter(Writer writer)

      Create a new instance of the `TagWriter` class that writes to the supplied `Writer`.
      Parameters:
        `writer` - the `Writer` to write tag content to

  - ### Method Detail

    - #### startTag

          public void startTag(String tagName)
                        throws JspException

      Start a new tag with the supplied name. Leaves the tag open so that attributes, inner text or nested tags can be written into it.
      Throws:
        `JspException`
      See Also:
        `endTag()`

    - #### writeAttribute

          public void writeAttribute(String attributeName,
                            String attributeValue)
                              throws JspException

      Write an HTML attribute with the specified name and value.

      Be sure to write all attributes before writing any inner text or nested tags.

      Throws:
        `IllegalStateException` - if the opening tag is closed
        `JspException`

    - #### writeOptionalAttributeValue

          public void writeOptionalAttributeValue(String attributeName,
                                         String attributeValue)
                                           throws JspException

      Write an HTML attribute if the supplied value is not `null` or zero length.
      Throws:
        `JspException`
      See Also:
        `writeAttribute(String, String)`

    - #### appendValue

          public void appendValue(String value)
                           throws JspException

      Close the current opening tag (if necessary) and appends the supplied value as inner text.
      Throws:
        `IllegalStateException` - if no tag is open
        `JspException`

    - #### forceBlock

          public void forceBlock()
                          throws JspException

      Indicate that the currently open tag should be closed and marked as a block level element.

      Useful when you plan to write additional content in the body outside the context of the current `TagWriter`.

      Throws:
        `JspException`

    - #### endTag

          public void endTag()
                      throws JspException

      Close the current tag.

      Correctly writes an empty tag if no inner text or nested tags have been written.

      Throws:
        `JspException`

    - #### endTag

          public void endTag(boolean enforceClosingTag)
                      throws JspException

      Close the current tag, allowing to enforce a full closing tag.

      Correctly writes an empty tag if no inner text or nested tags have been written.

      Parameters:
        `enforceClosingTag` - whether a full closing tag should be rendered in any case, even in case of a non-block tag
      Throws:
        `JspException`