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

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

Constructors
Constructor and Description
`AbstractDataBoundFormElementTag()`

### Method Summary

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