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

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

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

    public class SelectTag

extends AbstractHtmlInputElementTag

Databinding-aware JSP tag that renders an HTML '`select`' element.

Inner '`option`' tags can be rendered using one of the approaches supported by the OptionWriter class.

Also supports the use of nested `OptionTags` or (typically one) nested `OptionsTag`.

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

Field Summary
`static String` `LIST_VALUE_PAGE_ATTRIBUTE` The `PageContext` attribute under which the bound value is exposed to inner `OptionTags`.

Fields inherited from class org.springframework.web.servlet.tags.form.AbstractHtmlInputElementTag
`ACCESSKEY_ATTRIBUTE, DISABLED_ATTRIBUTE, ONBLUR_ATTRIBUTE, ONCHANGE_ATTRIBUTE, ONFOCUS_ATTRIBUTE, READONLY_ATTRIBUTE`

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.IterationTag
`EVAL_BODY_AGAIN`

Fields inherited from interface javax.servlet.jsp.tagext.Tag
`EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

Constructor Summary
`SelectTag()`

Method Summary
`int` `doEndTag()` Closes any block tag that might have been opened when using nested `options`.
`void` `doFinally()` Clears the `TagWriter` that might have been left over when using nested `options`.
`protected String` `getItemLabel()` Get the value of the '`itemLabel`' attribute.
`protected Object` `getItems()` Get the value of the '`items`' attribute.
`protected String` `getItemValue()` Get the value of the '`itemValue`' attribute.
`protected Object` `getMultiple()` Get the value of the HTML '`multiple`' attribute rendered on the final '`select`' element.
`protected String` `getSize()` Get the value of the '`size`' attribute.
`void` `setItemLabel(String itemLabel)` Set the name of the property mapped to the label (inner text) of the '`option`' tag.
`void` `setItems(Object items)` Set the `Collection`, `Map` or array of objects used to generate the inner '`option`' tags.
`void` `setItemValue(String itemValue)` Set the name of the property mapped to the '`value`' attribute of the '`option`' tag.
`void` `setMultiple(Object multiple)` Set the value of the HTML '`multiple`' attribute rendered on the final '`select`' element.
`void` `setSize(String size)` Set the value of the HTML '`size`' attribute rendered on the final '`select`' element.
`protected int` `writeTagContent(TagWriter tagWriter)` Renders the HTML '`select`' tag to the supplied `TagWriter`.

Methods inherited from class org.springframework.web.servlet.tags.form.AbstractHtmlInputElementTag
`getAccesskey, getDisabled, getOnblur, getOnchange, getOnfocus, getReadonly, isDisabled, isReadonly, setAccesskey, setDisabled, setOnblur, setOnchange, setOnfocus, setReadonly, writeOptionalAttributes`

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`

Methods inherited from class org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag
`autogenerateId, convertToDisplayString, getBindStatus, 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`

Field Detail

### LIST_VALUE_PAGE_ATTRIBUTE

    public static final String LIST_VALUE_PAGE_ATTRIBUTE

  The `PageContext` attribute under which the bound value is exposed to inner `OptionTags`.

  See Also:
    Constant Field Values

Constructor Detail

### SelectTag

    public SelectTag()

Method Detail

### setItems

    public void setItems(Object items)

  Set the `Collection`, `Map` or array of objects used to generate the inner '`option`' tags.

  Required when wishing to render '`option`' tags from an array, `Collection` or `Map`.

  Typically a runtime expression.

  Parameters:
    `items` - the items that comprise the options of this selection

### getItems

    protected Object getItems()

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

  May be a runtime expression.

### setItemValue

    public void setItemValue(String itemValue)

  Set the name of the property mapped to the '`value`' attribute of the '`option`' tag.

  Required when wishing to render '`option`' tags from an array or `Collection`.

  May be a runtime expression.

### getItemValue

    protected String getItemValue()

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

  May be a runtime expression.

### setItemLabel

    public void setItemLabel(String itemLabel)

  Set the name of the property mapped to the label (inner text) of the '`option`' tag.

  May be a runtime expression.

### getItemLabel

    protected String getItemLabel()

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

  May be a runtime expression.

### setSize

    public void setSize(String size)

  Set the value of the HTML '`size`' attribute rendered on the final '`select`' element.

  May be a runtime expression.

  Parameters:
    `size` - the desired value of the '`size`' attribute

### getSize

    protected String getSize()

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

  May be a runtime expression.

### setMultiple

    public void setMultiple(Object multiple)

  Set the value of the HTML '`multiple`' attribute rendered on the final '`select`' element.

  May be a runtime expression.

### getMultiple

    protected Object getMultiple()

  Get the value of the HTML '`multiple`' attribute rendered on the final '`select`' element.

  May be a runtime expression.

### writeTagContent

    protected int writeTagContent(TagWriter tagWriter)
                           throws JspException

  Renders the HTML '`select`' tag to the supplied `TagWriter`.

  Renders nested '`option`' tags if the `items` property is set, otherwise exposes the bound value for the nested `OptionTags`.

  Specified by:
    `writeTagContent` in class `AbstractFormTag`
  Returns:
    valid tag render instruction as per `Tag.doStartTag()`.
  Throws:
    `JspException`

### doEndTag

    public int doEndTag()
                 throws JspException

  Closes any block tag that might have been opened when using nested `options`.

  Specified by:
    `doEndTag` in interface `Tag`
  Overrides:
    `doEndTag` in class `TagSupport`
  Throws:
    `JspException`

### doFinally

    public void doFinally()

  Clears the `TagWriter` that might have been left over when using nested `options`.

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