The Spring Framework

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

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
All Implemented Interfaces:
Serializable, IterationTag, JspTag, Tag, TryCatchFinally
Direct Known Subclasses:
AbstractHtmlElementTag, HiddenInputTag

public abstract class AbstractDataBoundFormElementTag
extends AbstractFormTag

Base tag for all data-binding aware JSP form tags.

Provides the common path and id properties. Provides sub-classes with utility methods for accessing the BindStatus of their bound value and also for interacting with the TagWriter.

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

Field Summary
static String COMMAND_NAME_ATTRIBUTE
          The name of the 'commandName' attribute.
static String COMMAND_NAME_VARIABLE_NAME
          The name of the PageContext attribute under which the command object name is exposed.
static String ID_ATTRIBUTE
          The 'id' attribute of the rendered HTML tag.
 
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
AbstractDataBoundFormElementTag()
           
 
Method Summary
protected  String autogenerateId()
          Autogenerate the 'id' attribute value for this tag.
 void doFinally()
          Disposes of the BindStatus instance.
protected  BindStatus getBindStatus()
          Get the BindStatus for this tag.
protected  Object getBoundValue()
          Get the bound value.
protected  String getCompletePath()
          Build the complete path for this tag, including the nested path.
 String getId()
          Get the value of the 'id' attribute.
protected  String getName()
          Get the value for the HTML 'name' attribute.
protected  String getNestedPath()
          Get the value of the nested path that may have been exposed by the NestedPathTag.
protected  String getPath()
          Get the resolved property path for the command object.
protected  PropertyEditor getPropertyEditor()
          Get the PropertyEditor, if any, in use for value bound to this tag.
 void setId(String id)
          Set the value of the 'id' attribute.
 void setPath(String path)
          Set the property path from the command object.
protected  void writeDefaultAttributes(TagWriter tagWriter)
          Writes the default set of attributes to the supplied TagWriter.
 
Methods inherited from class org.springframework.web.servlet.tags.form.AbstractFormTag
createTagWriter, doStartTagInternal, evaluate, getDisplayString, getDisplayString, writeOptionalAttribute, writeTagContent
 
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, doEndTag, 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

ID_ATTRIBUTE

public static final String ID_ATTRIBUTE
The 'id' attribute of the rendered HTML tag.

See Also:
Constant Field Values

COMMAND_NAME_ATTRIBUTE

public static final String COMMAND_NAME_ATTRIBUTE
The name of the 'commandName' attribute.

See Also:
Constant Field Values

COMMAND_NAME_VARIABLE_NAME

public static final String COMMAND_NAME_VARIABLE_NAME
The name of the PageContext attribute under which the command object name is exposed.

Constructor Detail

AbstractDataBoundFormElementTag

public AbstractDataBoundFormElementTag()
Method Detail

setPath

public void setPath(String path)
Set the property path from the command object. May be a runtime expression. Required.


getPath

protected final String getPath()
                        throws JspException
Get the resolved property path for the command object.

Throws:
JspException

setId

public void setId(String id)
Set the value of the 'id' attribute.

Defaults to the value of getName(); may be a runtime expression. Note that the default value may not be valid for certain tags.

Overrides:
setId in class TagSupport

getId

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

May be a runtime expression.

Overrides:
getId in class TagSupport

writeDefaultAttributes

protected void writeDefaultAttributes(TagWriter tagWriter)
                               throws JspException
Writes the default set of attributes to the supplied TagWriter. Further abstract sub-classes should override this method to add in any additional default attributes but must remember to call the super method.

Concrete sub-classes should call this method when/if they want to render default attributes.

Parameters:
tagWriter - the TagWriter to which any attributes are to be written
Throws:
JspException

autogenerateId

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

The default implementation simply delegates to getName().

Throws:
JspException

getName

protected String getName()
                  throws JspException
Get the value for the HTML 'name' attribute.

The default implementation simply delegates to getCompletePath() to use the property path as the name. For the most part this is desirable as it links with the server-side expectation for databinding. However, some subclasses may wish to change the value of the 'name' attribute without changing the bind path.

Returns:
the value for the HTML 'name' attribute
Throws:
JspException

getBoundValue

protected final Object getBoundValue()
                              throws JspException
Get the bound value.

Throws:
JspException
See Also:
getBindStatus()

getPropertyEditor

protected PropertyEditor getPropertyEditor()
                                    throws JspException
Get the PropertyEditor, if any, in use for value bound to this tag.

Throws:
JspException

getBindStatus

protected BindStatus getBindStatus()
                            throws JspException
Get the BindStatus for this tag.

Throws:
JspException

getNestedPath

protected String getNestedPath()
Get the value of the nested path that may have been exposed by the NestedPathTag.


getCompletePath

protected String getCompletePath()
                          throws JspException
Build the complete path for this tag, including the nested path.

Throws:
JspException
See Also:
getNestedPath(), getPath()

doFinally

public void doFinally()
Disposes of the BindStatus instance.

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

The Spring Framework

Copyright © 2002-2007 The Spring Framework.