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

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.LabelTag
All Implemented Interfaces:
Serializable, DynamicAttributes, IterationTag, JspTag, Tag, TryCatchFinally, EditorAwareTag

public class LabelTag
extends AbstractHtmlElementTag

Databinding-aware JSP tag for rendering an HTML 'label' element that defines text that is associated with a single form element.

The 'for' attribute is required.

See the "formTags" showcase application that ships with the full Spring distribution for an example of this class in action.

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

Field Summary
 
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
LabelTag()
           
 
Method Summary
protected  String autogenerateFor()
          Autogenerate the 'for' attribute value for this tag.
 int doEndTag()
          Close the 'label' tag.
 void doFinally()
          Disposes of the TagWriter instance.
 String getFor()
          Get the value of the 'id' attribute.
protected  String getName()
          Overrides getName() to always return null, because the 'name' attribute is not supported by the 'label' tag.
protected  String resolveFor()
          Determine the 'for' attribute value for this tag, autogenerating one if none specified.
 void setFor(String forId)
          Set the value of the 'for' attribute.
protected  int writeTagContent(TagWriter tagWriter)
          Writes the opening 'label' tag and forces a block tag so that body content is written correctly.
 
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
autogenerateId, convertToDisplayString, getBindStatus, getBoundValue, getEditor, getId, 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
 

Constructor Detail

LabelTag

public LabelTag()
Method Detail

setFor

public void setFor(String forId)
Set the value of the 'for' attribute.

Defaults to the value of AbstractDataBoundFormElementTag.getPath(); may be a runtime expression.

Throws:
IllegalArgumentException - if the supplied value is null

getFor

public String getFor()
Get the value of the 'id' attribute.

May be a runtime expression.


writeTagContent

protected int writeTagContent(TagWriter tagWriter)
                       throws JspException
Writes the opening 'label' tag and forces a block tag so that body content is written correctly.

Specified by:
writeTagContent in class AbstractFormTag
Returns:
Tag.EVAL_BODY_INCLUDE
Throws:
JspException

getName

protected String getName()
                  throws JspException
Overrides getName() to always return null, because the 'name' attribute is not supported by the 'label' tag.

Overrides:
getName in class AbstractDataBoundFormElementTag
Returns:
the value for the HTML 'name' attribute
Throws:
JspException

resolveFor

protected String resolveFor()
                     throws JspException
Determine the 'for' attribute value for this tag, autogenerating one if none specified.

Throws:
JspException
See Also:
getFor(), autogenerateFor()

autogenerateFor

protected String autogenerateFor()
                          throws JspException
Autogenerate the 'for' attribute value for this tag.

The default implementation delegates to AbstractDataBoundFormElementTag.getPropertyPath(), deleting invalid characters (such as "[" or "]").

Throws:
JspException

doEndTag

public int doEndTag()
             throws JspException
Close the 'label' tag.

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

doFinally

public void doFinally()
Disposes of the TagWriter instance.

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