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

Modifier and Type
Method
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)`
Variant of `writeAttribute(String, String)` for writing empty HTML attributes without a value such as `required`.
`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 Details

### 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 Details

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

### writeAttribute

public void writeAttribute(String attributeName) throws JspException
Variant of `writeAttribute(String, String)` for writing empty HTML attributes without a value such as `required`.

Throws:
  `JspException`
Since:
  5.3.14

### writeOptionalAttributeValue

public void writeOptionalAttributeValue(String attributeName, @Nullable 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`