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

    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
                      org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag

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

Direct Known Subclasses:
  AbstractHtmlElementTag

    public abstract class AbstractDataBoundFormElementTag

extends AbstractFormTag
implements EditorAwareTag

Base tag for all data-binding aware JSP form tags.

Provides the common `path` and `id` properties. Provides sub-classes with utility methods for accessing the `BindStatus` of their bound value and also for `interacting` with the `TagWriter`.

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

Field Summary
`static String` `COMMAND_NAME_VARIABLE_NAME` Deprecated. as of Spring 2.5, in favor of `FormTag.MODEL_ATTRIBUTE_VARIABLE_NAME`
`protected static String` `NESTED_PATH_VARIABLE_NAME` Name of the exposed path variable within the scope of this tag: "nestedPath".

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

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

Method Summary
`protected String` `autogenerateId()` Autogenerate the '`id`' attribute value for this tag.
`protected String` `convertToDisplayString(Object value)` Get a display String for the given value, converted by a PropertyEditor that the BindStatus may have registered for the value's Class.
`void` `doFinally()` Disposes of the `BindStatus` instance.
`protected BindStatus` `getBindStatus()` Get the `BindStatus` for this tag.
`protected Object` `getBoundValue()` Get the bound value.
`PropertyEditor` `getEditor()` Exposes the `PropertyEditor` for `EditorAwareTag`.
`String` `getId()` Get the value of the '`id`' attribute.
`protected String` `getName()` Get the value for the HTML '`name`' attribute.
`protected String` `getNestedPath()` Get the value of the nested path that may have been exposed by the `NestedPathTag`.
`protected String` `getPath()` Get the `resolved` property path for the `form object`.
`protected PropertyEditor` `getPropertyEditor()` Get the `PropertyEditor`, if any, in use for value bound to this tag.
`protected String` `getPropertyPath()` Build the property path for this tag, including the nested path but not prefixed with the name of the form attribute.
`protected String` `processFieldValue(String name, String value, String type)` Process the given form field through a `RequestDataValueProcessor` instance if one is configured or otherwise returns the same value.
`protected String` `resolveId()` Determine the '`id`' attribute value for this tag, autogenerating one if none specified.
`void` `setId(String id)` Set the value of the '`id`' attribute.
`void` `setPath(String path)` Set the property path from the `form object`.
`protected void` `writeDefaultAttributes(TagWriter tagWriter)` Writes the default set of attributes to the supplied `TagWriter`.

Methods inherited from class org.springframework.web.servlet.tags.form.AbstractFormTag
`createTagWriter, doStartTagInternal, evaluate, evaluateBoolean, getDisplayString, getDisplayString, isDefaultHtmlEscape, writeOptionalAttribute, writeTagContent`

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

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

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

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

Field Detail

### NESTED_PATH_VARIABLE_NAME

    protected static final String NESTED_PATH_VARIABLE_NAME

  Name of the exposed path variable within the scope of this tag: "nestedPath". Same value as `NestedPathTag.NESTED_PATH_VARIABLE_NAME`.

  See Also:
    Constant Field Values

### COMMAND_NAME_VARIABLE_NAME

    @Deprecated
    public static final String COMMAND_NAME_VARIABLE_NAME

  Deprecated. as of Spring 2.5, in favor of `FormTag.MODEL_ATTRIBUTE_VARIABLE_NAME`
  The name of the `PageContext` attribute under which the command object name is exposed.

Constructor Detail

### AbstractDataBoundFormElementTag

    public AbstractDataBoundFormElementTag()

Method Detail

### setPath

    public void setPath(String path)

  Set the property path from the `form object`. May be a runtime expression.

### getPath

    protected final String getPath()
                            throws JspException

  Get the `resolved` property path for the `form object`.

  Throws:
    `JspException`

### setId

    public void setId(String id)

  Set the value of the '`id`' attribute.

  May be a runtime expression; defaults to the value of `getName()`. Note that the default value may not be valid for certain tags.

  Overrides:
    `setId` in class `TagSupport`

### getId

    public String getId()

  Get the value of the '`id`' attribute.

  Overrides:
    `getId` in class `TagSupport`

### writeDefaultAttributes

    protected void writeDefaultAttributes(TagWriter tagWriter)
                                   throws JspException

  Writes the default set of attributes to the supplied `TagWriter`. Further abstract sub-classes should override this method to add in any additional default attributes but must remember to call the `super` method.

  Concrete sub-classes should call this method when/if they want to render default attributes.

  Parameters:
    `tagWriter` - the `TagWriter` to which any attributes are to be written
  Throws:
    `JspException`

### resolveId

    protected String resolveId()
                        throws JspException

  Determine the '`id`' attribute value for this tag, autogenerating one if none specified.

  Throws:
    `JspException`
  See Also:
    `getId()`, `autogenerateId()`

### autogenerateId

    protected String autogenerateId()
                             throws JspException

  Autogenerate the '`id`' attribute value for this tag.

  The default implementation simply delegates to `getName()`, deleting invalid characters (such as "[" or "]").

  Throws:
    `JspException`

### getName

    protected String getName()
                      throws JspException

  Get the value for the HTML '`name`' attribute.

  The default implementation simply delegates to `getPropertyPath()` to use the property path as the name. For the most part this is desirable as it links with the server-side expectation for data binding. However, some subclasses may wish to change the value of the '`name`' attribute without changing the bind path.

  Returns:
    the value for the HTML '`name`' attribute
  Throws:
    `JspException`

### getBindStatus

    protected BindStatus getBindStatus()
                                throws JspException

  Get the `BindStatus` for this tag.

  Throws:
    `JspException`

### getNestedPath

    protected String getNestedPath()

  Get the value of the nested path that may have been exposed by the `NestedPathTag`.

### getPropertyPath

    protected String getPropertyPath()
                              throws JspException

  Build the property path for this tag, including the nested path but not prefixed with the name of the form attribute.

  Throws:
    `JspException`
  See Also:
    `getNestedPath()`, `getPath()`

### getBoundValue

    protected final Object getBoundValue()
                                  throws JspException

  Get the bound value.

  Throws:
    `JspException`
  See Also:
    `getBindStatus()`

### getPropertyEditor

    protected PropertyEditor getPropertyEditor()
                                        throws JspException

  Get the `PropertyEditor`, if any, in use for value bound to this tag.

  Throws:
    `JspException`

### getEditor

    public final PropertyEditor getEditor()
                                   throws JspException

  Exposes the `PropertyEditor` for `EditorAwareTag`.

  Use `getPropertyEditor()` for internal rendering purposes.

  Specified by:
    `getEditor` in interface `EditorAwareTag`
  Returns:
    the current PropertyEditor, or `null` if none
  Throws:
    `JspException` - if resolving the editor failed

### convertToDisplayString

    protected String convertToDisplayString(Object value)
                                     throws JspException

  Get a display String for the given value, converted by a PropertyEditor that the BindStatus may have registered for the value's Class.

  Throws:
    `JspException`

### processFieldValue

    protected final String processFieldValue(String name,
                                             String value,
                                             String type)

  Process the given form field through a `RequestDataValueProcessor` instance if one is configured or otherwise returns the same value.

### doFinally

    public void doFinally()

  Disposes of the `BindStatus` instance.

  Specified by:
    `doFinally` in interface `TryCatchFinally`
  Overrides:
    `doFinally` in class `RequestContextAwareTag`