## org.springframework.web.servlet.tags.form
Class AbstractFormTag

    java.lang.Object
      javax.servlet.jsp.tagext.TagSupport
          org.springframework.web.servlet.tags.RequestContextAwareTag
              org.springframework.web.servlet.tags.HtmlEscapingAwareTag
                  org.springframework.web.servlet.tags.form.AbstractFormTag

All Implemented Interfaces:
  Serializable, IterationTag, JspTag, Tag, TryCatchFinally

Direct Known Subclasses:
  AbstractDataBoundFormElementTag

    public abstract class AbstractFormTag

extends HtmlEscapingAwareTag

Base class for all JSP form tags. Provides utility methods for null-safe EL evaluation and for accessing and working with a `TagWriter`.

Subclasses should implement the `writeTagContent(TagWriter)` to perform actual tag rendering.

Subclasses (or test classes) can override the `createTagWriter()` method to redirect output to a `Writer` other than the `JspWriter` associated with the current `PageContext`.

Since:
  2.0
Author:
  Rob Harrop, Juergen Hoeller
See Also:
  Serialized Form

Field Summary

Fields inherited from class org.springframework.web.servlet.tags.RequestContextAwareTag
`logger, REQUEST_CONTEXT_PAGE_ATTRIBUTE`

Fields inherited from class javax.servlet.jsp.tagext.TagSupport
`id, 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
`AbstractFormTag()`

Method Summary
`protected TagWriter` `createTagWriter()` Create the `TagWriter` which all output will be written to.
`protected int` `doStartTagInternal()` Provide a simple template method that calls `createTagWriter()` and passes the created `TagWriter` to the `writeTagContent(TagWriter)` method.
`protected Object` `evaluate(String attributeName, Object value)` Evaluate the supplied value for the supplied attribute name.
`protected boolean` `evaluateBoolean(String attributeName, String value)` Evaluate the supplied value for the supplied attribute name.
`protected String` `getDisplayString(Object value)` Get the display value of the supplied `Object`, HTML escaped as required.
`protected String` `getDisplayString(Object value, PropertyEditor propertyEditor)` Get the display value of the supplied `Object`, HTML escaped as required.
`protected boolean` `isDefaultHtmlEscape()` Overridden to default to `true` in case of no explicit default given.
`protected void` `writeOptionalAttribute(TagWriter tagWriter, String attributeName, String value)` Optionally writes the supplied value under the supplied attribute name into the supplied `TagWriter`.
`protected abstract int` `writeTagContent(TagWriter tagWriter)` Subclasses should implement this method to perform tag content rendering.

Methods inherited from class org.springframework.web.servlet.tags.HtmlEscapingAwareTag
`isHtmlEscape, setHtmlEscape`

Methods inherited from class org.springframework.web.servlet.tags.RequestContextAwareTag
`doCatch, doFinally, doStartTag, getRequestContext`

Methods inherited from class javax.servlet.jsp.tagext.TagSupport
`doAfterBody, doEndTag, findAncestorWithClass, getId, getParent, getValue, getValues, release, removeValue, setId, setPageContext, setParent, setValue`

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

Constructor Detail

### AbstractFormTag

    public AbstractFormTag()

Method Detail

### evaluate

    protected Object evaluate(String attributeName,
                              Object value)
                       throws JspException

  Evaluate the supplied value for the supplied attribute name. If the supplied value is `null` then `null` is returned, otherwise evaluation is handled using `ExpressionEvaluationUtils.evaluate(String, String, javax.servlet.jsp.PageContext)`.

  Throws:
    `JspException`

### evaluateBoolean

    protected boolean evaluateBoolean(String attributeName,
                                      String value)
                               throws JspException

  Evaluate the supplied value for the supplied attribute name. If the supplied value is `null` then `false` is returned, otherwise evaluation is handled using `ExpressionEvaluationUtils.evaluate(String, String, javax.servlet.jsp.PageContext)`, with subsequent matching against `Boolean.TRUE` and `Boolean.valueOf`.

  Throws:
    `JspException`

### writeOptionalAttribute

    protected final void writeOptionalAttribute(TagWriter tagWriter,
                                                String attributeName,
                                                String value)
                                         throws JspException

  Optionally writes the supplied value under the supplied attribute name into the supplied `TagWriter`. In this case, the supplied value is `evaluated` first and then the `String representation` is written as the attribute value. If the resultant `String` representation is `null` or empty, no attribute is written.

  Throws:
    `JspException`
  See Also:
    `TagWriter.writeOptionalAttributeValue(String, String)`

### createTagWriter

    protected TagWriter createTagWriter()

  Create the `TagWriter` which all output will be written to. By default, the `TagWriter` writes its output to the `JspWriter` for the current `PageContext`. Subclasses may choose to change the `Writer` to which output is actually written.

### doStartTagInternal

    protected final int doStartTagInternal()
                                    throws Exception

  Provide a simple template method that calls `createTagWriter()` and passes the created `TagWriter` to the `writeTagContent(TagWriter)` method.

  Specified by:
    `doStartTagInternal` in class `RequestContextAwareTag`
  Returns:
    the value returned by `writeTagContent(TagWriter)`
  Throws:
    `Exception` - any exception, any checked one other than a JspException gets wrapped in a JspException by doStartTag
  See Also:
    `TagSupport.doStartTag()`

### getDisplayString

    protected String getDisplayString(Object value)

  Get the display value of the supplied `Object`, HTML escaped as required. This version is not `PropertyEditor`-aware.

### getDisplayString

    protected String getDisplayString(Object value,
                                      PropertyEditor propertyEditor)

  Get the display value of the supplied `Object`, HTML escaped as required. If the supplied value is not a `String` and the supplied `PropertyEditor` is not null then the `PropertyEditor` is used to obtain the display value.

### isDefaultHtmlEscape

    protected boolean isDefaultHtmlEscape()

  Overridden to default to `true` in case of no explicit default given.

  Overrides:
    `isDefaultHtmlEscape` in class `HtmlEscapingAwareTag`
  See Also:
    `RequestContextAwareTag.getRequestContext()`

### writeTagContent

    protected abstract int writeTagContent(TagWriter tagWriter)
                                    throws JspException

  Subclasses should implement this method to perform tag content rendering.

  Returns:
    valid tag render instruction as per `Tag.doStartTag()`.
  Throws:
    `JspException`