Package org.springframework.web.servlet.tags.form

# Class OptionTag

java.lang.Object
jakarta.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:
  `BodyTag`, `DynamicAttributes`, `IterationTag`, `JspTag`, `Tag`, `TryCatchFinally`, `Serializable`, `EditorAwareTag`

public class OptionTag extends AbstractHtmlElementBodyTag implements BodyTag
The `<option>` tag renders a single HTML 'option'. Sets 'selected' as appropriate based on bound value.

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.

### Attribute Summary

Attribute | Required? | Runtime Expression? | Description
--- | --- | --- | ---
cssClass | false | true | HTML Optional Attribute
cssErrorClass | false | true | HTML Optional Attribute. Used when the bound field has errors.
cssStyle | false | true | HTML Optional Attribute
dir | false | true | HTML Standard Attribute
disabled | false | true | HTML Optional Attribute. Setting the value of this attribute to 'true' will disable the HTML element.
htmlEscape | false | true | Enable/disable HTML escaping of rendered values.
id | false | true | HTML Standard Attribute
label | false | true | HTML Optional Attribute
lang | false | true | HTML Standard Attribute
onclick | false | true | HTML Event Attribute
ondblclick | false | true | HTML Event Attribute
onkeydown | false | true | HTML Event Attribute
onkeypress | false | true | HTML Event Attribute
onkeyup | false | true | HTML Event Attribute
onmousedown | false | true | HTML Event Attribute
onmousemove | false | true | HTML Event Attribute
onmouseout | false | true | HTML Event Attribute
onmouseover | false | true | HTML Event Attribute
onmouseup | false | true | HTML Event Attribute
tabindex | false | true | HTML Standard Attribute
title | false | true | HTML Standard Attribute
value | true | true | HTML Optional Attribute

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

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`DISPLAY_VALUE_VARIABLE_NAME`
The name of the JSP variable used to expose the display value for this tag.
`static final 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

`NESTED_PATH_VARIABLE_NAME`

### Fields inherited from class org.springframework.web.servlet.tags.RequestContextAwareTag

`logger, REQUEST_CONTEXT_PAGE_ATTRIBUTE`

### Fields inherited from class jakarta.servlet.jsp.tagext.TagSupport

`pageContext`

### Fields inherited from interface jakarta.servlet.jsp.tagext.BodyTag

`EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

### Fields inherited from interface jakarta.servlet.jsp.tagext.IterationTag

`EVAL_BODY_AGAIN`

### Fields inherited from interface jakarta.servlet.jsp.tagext.Tag

`EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

## Constructor Summary

Constructors
Constructor
Description
`OptionTag()`

## Method Summary

Modifier and Type
Method
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`
`getLabel()`
Get the text body of the rendered HTML `<option>` tag.
`protected Object`
`getValue()`
Get the 'value' attribute of the rendered HTML `<option>` tag.
`protected boolean`
`isDisabled()`
Get the value of the '`disabled`' attribute.
`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(boolean disabled)`
Set the value of the '`disabled`' attribute.
`void`
`setLabel(String label)`
Set the text body of the rendered HTML `<option>` tag.
`void`
`setValue(Object value)`
Set the 'value' attribute of the rendered HTML `<option>` 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, getDisplayString, getDisplayString, isDefaultHtmlEscape, writeOptionalAttribute`

### Methods inherited from class org.springframework.web.servlet.tags.HtmlEscapingAwareTag

`htmlEscape, isHtmlEscape, isResponseEncodedHtmlEscape, setHtmlEscape`

### Methods inherited from class org.springframework.web.servlet.tags.RequestContextAwareTag

`doCatch, doStartTag, getRequestContext`

### Methods inherited from class jakarta.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 jakarta.servlet.jsp.tagext.BodyTag

`doInitBody, setBodyContent`

### Methods inherited from interface jakarta.servlet.jsp.tagext.IterationTag

`doAfterBody`

### Methods inherited from interface jakarta.servlet.jsp.tagext.Tag

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

## Field Details

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

### OptionTag

public OptionTag()

## Method Details

### setValue

public void setValue(Object value)
Set the 'value' attribute of the rendered HTML `<option>` tag.

### getValue

@Nullable protected Object getValue()
Get the 'value' attribute of the rendered HTML `<option>` tag.

### setDisabled

public void setDisabled(boolean disabled)
Set the value of the '`disabled`' attribute.

### isDisabled

protected boolean isDisabled()
Get the value of the '`disabled`' attribute.

### setLabel

public void setLabel(String label)
Set the text body of the rendered HTML `<option>` tag.

May be a runtime expression.

### getLabel

@Nullable protected String getLabel()
Get the text body of the rendered HTML `<option>` 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

@Nullable 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`