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

java.lang.Object
  extended by 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.AbstractCheckedElementTag
                                  extended by org.springframework.web.servlet.tags.form.AbstractMultiCheckedElementTag
All Implemented Interfaces:
EditorAwareTag
Direct Known Subclasses:
CheckboxesTag, RadioButtonsTag

public abstract class AbstractMultiCheckedElementTag
extends AbstractCheckedElementTag

Abstract base class to provide common methods for implementing databinding-aware JSP tags for rendering multiple HTML 'input' elements with a 'type' of 'checkbox' or 'radio'.

Since:
2.5.2
Author:
Juergen Hoeller, Scott Andrews

Field Summary
private  java.lang.String delimiter
          Delimiter to use between each 'input type="checkbox/radio"' tags.
private  java.lang.String element
          The HTML element used to enclose the 'input type="checkbox/radio"' tag.
private  java.lang.String itemLabel
          The value to be displayed as part of the 'input type="checkbox/radio"' tag.
private  java.lang.Object items
          The Collection, Map or array of objects used to generate the 'input type="checkbox/radio"' tags.
private  java.lang.String itemValue
          The name of the property mapped to the 'value' attribute of the 'input type="checkbox/radio"' tag.
private static java.lang.String SPAN_TAG
          The HTML 'span' tag.
 
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
 
Constructor Summary
AbstractMultiCheckedElementTag()
           
 
Method Summary
 java.lang.String getDelimiter()
          Return the delimiter to be used between each 'input type="radio"' tag.
 java.lang.String getElement()
          Get the HTML element used to enclose 'input type="checkbox/radio"' tag.
protected  java.lang.String getItemLabel()
          Get the value to be displayed as part of the 'input type="checkbox/radio"' tag.
protected  java.lang.Object getItems()
          Get the Collection, Map or array of objects used to generate the 'input type="checkbox/radio"' tags.
protected  java.lang.String getItemValue()
          Get the name of the property mapped to the 'value' attribute of the 'input type="checkbox/radio"' tag.
protected  java.lang.String resolveId()
          Appends a counter to a specified id as well, since we're dealing with multiple HTML elements.
 void setDelimiter(java.lang.String delimiter)
          Set the delimiter to be used between each 'input type="checkbox/radio"' tag.
 void setElement(java.lang.String element)
          Set the HTML element used to enclose the 'input type="checkbox/radio"' tag.
 void setItemLabel(java.lang.String itemLabel)
          Set the value to be displayed as part of the 'input type="checkbox/radio"' tag.
 void setItems(java.lang.Object items)
          Set the Collection, Map or array of objects used to generate the 'input type="checkbox/radio"' tags.
 void setItemValue(java.lang.String itemValue)
          Set the name of the property mapped to the 'value' attribute of the 'input type="checkbox/radio"' tag.
private  void writeElementTag(TagWriter tagWriter, java.lang.Object item, java.lang.Object value, java.lang.Object label, int itemIndex)
           
private  void writeMapEntry(TagWriter tagWriter, java.lang.String valueProperty, java.lang.String labelProperty, java.util.Map.Entry entry, int itemIndex)
           
private  void writeObjectEntry(TagWriter tagWriter, java.lang.String valueProperty, java.lang.String labelProperty, java.lang.Object item, int itemIndex)
           
protected  int writeTagContent(TagWriter tagWriter)
          Renders the 'input type="radio"' element with the configured setItems(Object) values.
 
Methods inherited from class org.springframework.web.servlet.tags.form.AbstractCheckedElementTag
autogenerateId, getInputType, isValidDynamicAttribute, renderFromBoolean, renderFromValue, renderFromValue
 
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, 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
convertToDisplayString, doFinally, getBindStatus, getBoundValue, getEditor, getId, getName, getNestedPath, getPath, getPropertyEditor, getPropertyPath, processFieldValue, 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 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SPAN_TAG

private static final java.lang.String SPAN_TAG
The HTML 'span' tag.

See Also:
Constant Field Values

items

private java.lang.Object items
The Collection, Map or array of objects used to generate the 'input type="checkbox/radio"' tags.


itemValue

private java.lang.String itemValue
The name of the property mapped to the 'value' attribute of the 'input type="checkbox/radio"' tag.


itemLabel

private java.lang.String itemLabel
The value to be displayed as part of the 'input type="checkbox/radio"' tag.


element

private java.lang.String element
The HTML element used to enclose the 'input type="checkbox/radio"' tag.


delimiter

private java.lang.String delimiter
Delimiter to use between each 'input type="checkbox/radio"' tags.

Constructor Detail

AbstractMultiCheckedElementTag

public AbstractMultiCheckedElementTag()
Method Detail

setItems

public void setItems(java.lang.Object items)
Set the Collection, Map or array of objects used to generate the 'input type="checkbox/radio"' tags.

Typically a runtime expression.

Parameters:
items - said items

getItems

protected java.lang.Object getItems()
Get the Collection, Map or array of objects used to generate the 'input type="checkbox/radio"' tags.


setItemValue

public void setItemValue(java.lang.String itemValue)
Set the name of the property mapped to the 'value' attribute of the 'input type="checkbox/radio"' tag.

May be a runtime expression.


getItemValue

protected java.lang.String getItemValue()
Get the name of the property mapped to the 'value' attribute of the 'input type="checkbox/radio"' tag.


setItemLabel

public void setItemLabel(java.lang.String itemLabel)
Set the value to be displayed as part of the 'input type="checkbox/radio"' tag.

May be a runtime expression.


getItemLabel

protected java.lang.String getItemLabel()
Get the value to be displayed as part of the 'input type="checkbox/radio"' tag.


setDelimiter

public void setDelimiter(java.lang.String delimiter)
Set the delimiter to be used between each 'input type="checkbox/radio"' tag.

By default, there is no delimiter.


getDelimiter

public java.lang.String getDelimiter()
Return the delimiter to be used between each 'input type="radio"' tag.


setElement

public void setElement(java.lang.String element)
Set the HTML element used to enclose the 'input type="checkbox/radio"' tag.

Defaults to an HTML '<span/>' tag.


getElement

public java.lang.String getElement()
Get the HTML element used to enclose 'input type="checkbox/radio"' tag.


resolveId

protected java.lang.String resolveId()
                              throws JspException
Appends a counter to a specified id as well, since we're dealing with multiple HTML elements.

Overrides:
resolveId in class AbstractDataBoundFormElementTag
Throws:
JspException
See Also:
AbstractDataBoundFormElementTag.getId(), AbstractDataBoundFormElementTag.autogenerateId()

writeTagContent

protected int writeTagContent(TagWriter tagWriter)
                       throws JspException
Renders the 'input type="radio"' element with the configured setItems(Object) values. Marks the element as checked if the value matches the bound value.

Specified by:
writeTagContent in class AbstractCheckedElementTag
Returns:
valid tag render instruction as per javax.servlet.jsp.tagext.Tag#doStartTag().
Throws:
JspException

writeObjectEntry

private void writeObjectEntry(TagWriter tagWriter,
                              java.lang.String valueProperty,
                              java.lang.String labelProperty,
                              java.lang.Object item,
                              int itemIndex)
                       throws JspException
Throws:
JspException

writeMapEntry

private void writeMapEntry(TagWriter tagWriter,
                           java.lang.String valueProperty,
                           java.lang.String labelProperty,
                           java.util.Map.Entry entry,
                           int itemIndex)
                    throws JspException
Throws:
JspException

writeElementTag

private void writeElementTag(TagWriter tagWriter,
                             java.lang.Object item,
                             java.lang.Object value,
                             java.lang.Object label,
                             int itemIndex)
                      throws JspException
Throws:
JspException