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

public class SelectTag extends AbstractHtmlInputElementTag
The <select> tag renders an HTML 'select' element. Supports data binding to the selected option.

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.

Attribute Summary

Attribute Required? Runtime Expression? Description

accesskey

false

true

HTML Standard Attribute

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

itemLabel

false

true

Name of the property mapped to the inner text of the 'option' tag

items

false

true

The Collection, Map or array of objects used to generate the inner 'option' tags

itemValue

false

true

Name of the property mapped to 'value' attribute of the 'option' tag

lang

false

true

HTML Standard Attribute

multiple

false

true

HTML Optional Attribute

onblur

false

true

HTML Event Attribute

onchange

false

true

HTML Event Attribute

onclick

false

true

HTML Event Attribute

ondblclick

false

true

HTML Event Attribute

onfocus

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

path

true

true

Path to property for data binding

size

false

true

HTML Optional Attribute

tabindex

false

true

HTML Standard Attribute

title

false

true

HTML Standard Attribute

Since:
2.0
Author:
Rob Harrop, Juergen Hoeller
See Also:
  • Field Details

  • Constructor Details

    • SelectTag

      public SelectTag()
  • Method Details

    • setItems

      public void setItems(@Nullable 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

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

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

      @Nullable 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.
    • getSize

      @Nullable protected String getSize()
      Get the value of the 'size' attribute.
    • setMultiple

      public void setMultiple(Object multiple)
      Set the value of the HTML 'multiple' attribute rendered on the final 'select' element.
    • getMultiple

      @Nullable protected Object getMultiple()
      Get the value of the HTML 'multiple' attribute rendered on the final 'select' element.
    • 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