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

java.lang.Object
  extended by javax.servlet.jsp.tagext.TagSupport
      extended by org.springframework.web.servlet.tags.RequestContextAwareTag
          extended by org.springframework.web.servlet.tags.HtmlEscapingAwareTag
              extended by org.springframework.web.servlet.tags.form.AbstractFormTag
                  extended by org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag
                      extended by org.springframework.web.servlet.tags.form.AbstractHtmlElementTag
                          extended by org.springframework.web.servlet.tags.form.AbstractHtmlInputElementTag
                              extended by 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