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
`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`