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

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.LabelTag
All Implemented Interfaces:
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

Field Summary
private static java.lang.String FOR_ATTRIBUTE
          The name of the 'for' attribute.
private  java.lang.String forId
          The value of the 'for' attribute.
private static java.lang.String LABEL_TAG
          The HTML 'label' tag.
private  TagWriter tagWriter
          The TagWriter instance being used.
 
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
LabelTag()
           
 
Method Summary
protected  java.lang.String autogenerateFor()
          Autogenerate the 'for' attribute value for this tag.
 int doEndTag()
          Close the 'label' tag.
 void doFinally()
          Disposes of the TagWriter instance.
 java.lang.String getFor()
          Get the value of the 'id' attribute.
protected  java.lang.String getName()
          Overrides getName() to always return null, because the 'name' attribute is not supported by the 'label' tag.
protected  java.lang.String resolveFor()
          Determine the 'for' attribute value for this tag, autogenerating one if none specified.
 void setFor(java.lang.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, 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, 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 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LABEL_TAG

private static final java.lang.String LABEL_TAG
The HTML 'label' tag.

See Also:
Constant Field Values

FOR_ATTRIBUTE

private static final java.lang.String FOR_ATTRIBUTE
The name of the 'for' attribute.

See Also:
Constant Field Values

tagWriter

private TagWriter tagWriter
The TagWriter instance being used.

Stored so we can close the tag on doEndTag().


forId

private java.lang.String forId
The value of the 'for' attribute.

Constructor Detail

LabelTag

public LabelTag()
Method Detail

setFor

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

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

Throws:
java.lang.IllegalArgumentException - if the supplied value is null

getFor

public java.lang.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:
javax.servlet.jsp.tagext.Tag#EVAL_BODY_INCLUDE
Throws:
JspException

getName

protected java.lang.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 java.lang.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 java.lang.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.

Throws:
JspException

doFinally

public void doFinally()
Disposes of the TagWriter instance.

Overrides:
doFinally in class AbstractDataBoundFormElementTag