org.springframework.web.servlet.tags.form

## Class OptionTag

- 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
          - - org.springframework.web.servlet.tags.form.AbstractHtmlElementTag
            - - org.springframework.web.servlet.tags.form.AbstractHtmlElementBodyTag
              - - org.springframework.web.servlet.tags.form.OptionTag

- All Implemented Interfaces:
    Serializable, BodyTag, DynamicAttributes, IterationTag, JspTag, Tag, TryCatchFinally, EditorAwareTag

      public class OptionTag
      extends AbstractHtmlElementBodyTag
      implements BodyTag

  JSP tag for rendering an HTML '`option`' tag.

  Must be used nested inside a `SelectTag`.

  Provides full support for databinding by marking an '`option`' as 'selected' if the `value` matches the value bound to the out `SelectTag`.

  The `value` property is required and corresponds to the '`value`' attribute of the rendered '`option`'.

  An optional `label` property can be specified, the value of which corresponds to inner text of the rendered '`option`' tag. If no `label` is specified then the `value` property will be used when rendering the inner text.

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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `DISPLAY_VALUE_VARIABLE_NAME` The name of the JSP variable used to expose the display value for this tag.
    `static String` | `VALUE_VARIABLE_NAME` The name of the JSP variable used to expose the value for this tag.

    - ### Fields inherited from class org.springframework.web.servlet.tags.form.AbstractHtmlElementTag

      `CLASS_ATTRIBUTE, DIR_ATTRIBUTE, LANG_ATTRIBUTE, ONCLICK_ATTRIBUTE, ONDBLCLICK_ATTRIBUTE, ONKEYDOWN_ATTRIBUTE, ONKEYPRESS_ATTRIBUTE, ONKEYUP_ATTRIBUTE, ONMOUSEDOWN_ATTRIBUTE, ONMOUSEMOVE_ATTRIBUTE, ONMOUSEOUT_ATTRIBUTE, ONMOUSEOVER_ATTRIBUTE, ONMOUSEUP_ATTRIBUTE, STYLE_ATTRIBUTE, TABINDEX_ATTRIBUTE, TITLE_ATTRIBUTE`

    - ### Fields inherited from class org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag

      `COMMAND_NAME_VARIABLE_NAME, NESTED_PATH_VARIABLE_NAME`

    - ### 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.BodyTag

      `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

    - ### 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
    `OptionTag()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected String` | `autogenerateId()` Autogenerate the '`id`' attribute value for this tag.
    `protected void` | `exposeAttributes()` Called during `AbstractHtmlElementBodyTag.writeTagContent(org.springframework.web.servlet.tags.form.TagWriter)` allowing subclasses to add any attributes to the `PageContext` as needed.
    `protected BindStatus` | `getBindStatus()` Get the `BindStatus` for this tag.
    `protected String` | `getDisabled()` Get the value of the '`disabled`' attribute.
    `protected String` | `getLabel()` Get the text body of the rendered HTML `&lt;option&gt;` tag.
    `protected Object` | `getValue()` Get the 'value' attribute of the rendered HTML `&lt;option&gt;` tag.
    `protected boolean` | `isDisabled()` Is the current HTML tag disabled?
    `protected void` | `onWriteTagContent()` Make sure we are under a '`select`' tag before proceeding.
    `protected void` | `removeAttributes()` Called by `AbstractHtmlElementBodyTag.doFinally()` allowing subclasses to remove any attributes from the `PageContext` as needed.
    `protected void` | `renderDefaultContent(TagWriter tagWriter)`
    `protected void` | `renderFromBodyContent(BodyContent bodyContent, TagWriter tagWriter)` Render the tag contents based on the supplied `BodyContent`.
    `void` | `setDisabled(String disabled)` Set the value of the '`disabled`' attribute.
    `void` | `setLabel(String label)` Set the text body of the rendered HTML `&lt;option&gt;` tag.
    `void` | `setValue(Object value)` Set the 'value' attribute of the rendered HTML `&lt;option&gt;` tag.

    - ### Methods inherited from class org.springframework.web.servlet.tags.form.AbstractHtmlElementBodyTag

      `doEndTag, doFinally, doInitBody, flushBufferedBodyContent, setBodyContent, shouldRender, writeTagContent`

    - ### Methods inherited from class org.springframework.web.servlet.tags.form.AbstractHtmlElementTag

      `getCssClass, getCssErrorClass, getCssStyle, getDir, getDynamicAttributes, getLang, getOnclick, getOndblclick, getOnkeydown, getOnkeypress, getOnkeyup, getOnmousedown, getOnmousemove, getOnmouseout, getOnmouseover, getOnmouseup, getTabindex, getTitle, isValidDynamicAttribute, resolveCssClass, setCssClass, setCssErrorClass, setCssStyle, setDir, setDynamicAttribute, setLang, setOnclick, setOndblclick, setOnkeydown, setOnkeypress, setOnkeyup, setOnmousedown, setOnmousemove, setOnmouseout, setOnmouseover, setOnmouseup, setTabindex, setTitle, writeDefaultAttributes, writeOptionalAttributes`

    - ### Methods inherited from class org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag

      `convertToDisplayString, getBoundValue, getEditor, getId, getName, getNestedPath, getPath, getPropertyEditor, getPropertyPath, processFieldValue, resolveId, setId, setPath`

    - ### Methods inherited from class org.springframework.web.servlet.tags.form.AbstractFormTag

      `createTagWriter, doStartTagInternal, evaluate, evaluateBoolean, getDisplayString, getDisplayString, isDefaultHtmlEscape, writeOptionalAttribute`

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

    - ### Methods inherited from interface javax.servlet.jsp.tagext.BodyTag

      `doInitBody, setBodyContent`

    - ### Methods inherited from interface javax.servlet.jsp.tagext.IterationTag

      `doAfterBody`

    - ### Methods inherited from interface javax.servlet.jsp.tagext.Tag

      `doEndTag, doStartTag, getParent, release, setPageContext, setParent`

- - ### Field Detail

    - #### VALUE_VARIABLE_NAME

          public static final String VALUE_VARIABLE_NAME

      The name of the JSP variable used to expose the value for this tag.
      See Also:
        Constant Field Values

    - #### DISPLAY_VALUE_VARIABLE_NAME

          public static final String DISPLAY_VALUE_VARIABLE_NAME

      The name of the JSP variable used to expose the display value for this tag.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### OptionTag

          public OptionTag()

  - ### Method Detail

    - #### setValue

          public void setValue(Object value)

      Set the 'value' attribute of the rendered HTML `&lt;option&gt;` tag.

      May be a runtime expression.

    - #### getValue

          protected Object getValue()

      Get the 'value' attribute of the rendered HTML `&lt;option&gt;` tag.

    - #### setDisabled

          public void setDisabled(String disabled)

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

      May be a runtime expression.

      Parameters:
        `disabled` - the value of the '`disabled`' attribute

    - #### getDisabled

          protected String getDisabled()

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

    - #### isDisabled

          protected boolean isDisabled()
                                throws JspException

      Is the current HTML tag disabled?
      Returns:
        `true` if this tag is disabled
      Throws:
        `JspException`

    - #### setLabel

          public void setLabel(String label)

      Set the text body of the rendered HTML `&lt;option&gt;` tag.

      May be a runtime expression.

    - #### getLabel

          protected String getLabel()

      Get the text body of the rendered HTML `&lt;option&gt;` tag.

    - #### renderDefaultContent

          protected void renderDefaultContent(TagWriter tagWriter)
                                       throws JspException

      Specified by:
        `renderDefaultContent` in class `AbstractHtmlElementBodyTag`
      Throws:
        `JspException`

    - #### renderFromBodyContent

          protected void renderFromBodyContent(BodyContent bodyContent,
                                   TagWriter tagWriter)
                                        throws JspException

      Description copied from class: `AbstractHtmlElementBodyTag`
      Render the tag contents based on the supplied `BodyContent`.

      The default implementation simply `flushes` the `BodyContent` directly to the output. Subclasses may choose to override this to add additional content to the output.

      Overrides:
        `renderFromBodyContent` in class `AbstractHtmlElementBodyTag`
      Throws:
        `JspException`

    - #### onWriteTagContent

          protected void onWriteTagContent()

      Make sure we are under a '`select`' tag before proceeding.
      Overrides:
        `onWriteTagContent` in class `AbstractHtmlElementBodyTag`

    - #### exposeAttributes

          protected void exposeAttributes()
                                   throws JspException

      Description copied from class: `AbstractHtmlElementBodyTag`
      Called during `AbstractHtmlElementBodyTag.writeTagContent(org.springframework.web.servlet.tags.form.TagWriter)` allowing subclasses to add any attributes to the `PageContext` as needed.
      Overrides:
        `exposeAttributes` in class `AbstractHtmlElementBodyTag`
      Throws:
        `JspException`

    - #### getBindStatus

          protected BindStatus getBindStatus()

      Description copied from class: `AbstractDataBoundFormElementTag`
      Get the `BindStatus` for this tag.
      Overrides:
        `getBindStatus` in class `AbstractDataBoundFormElementTag`

    - #### removeAttributes

          protected void removeAttributes()

      Description copied from class: `AbstractHtmlElementBodyTag`
      Called by `AbstractHtmlElementBodyTag.doFinally()` allowing subclasses to remove any attributes from the `PageContext` as needed.
      Overrides:
        `removeAttributes` in class `AbstractHtmlElementBodyTag`

    - #### autogenerateId

          protected String autogenerateId()
                                   throws JspException

      Description copied from class: `AbstractDataBoundFormElementTag`
      Autogenerate the '`id`' attribute value for this tag.

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

      Overrides:
        `autogenerateId` in class `AbstractDataBoundFormElementTag`
      Throws:
        `JspException`