The Spring Framework

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

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

public abstract class AbstractFormTag
extends HtmlEscapingAwareTag

Base class for all JSP form tags. Provides utility methods for null-safe EL evaluation and for accessing and working with a TagWriter.

Subclasses should implement the writeTagContent(TagWriter) to perform actual tag rendering.

Subclasses (or test classes) can override the createTagWriter() method to redirect output to a Writer other than the JspWriter associated with the current PageContext.

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

Field Summary
 
Fields inherited from class org.springframework.web.servlet.tags.RequestContextAwareTag
logger, REQUEST_CONTEXT_PAGE_ATTRIBUTE
 
Fields inherited from class javax.servlet.jsp.tagext.TagSupport
id, 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
AbstractFormTag()
           
 
Method Summary
protected  TagWriter createTagWriter()
          Create the TagWriter which all output will be written to.
protected  int doStartTagInternal()
          Provide a simple template method that calls createTagWriter() and passes the created TagWriter to the writeTagContent(TagWriter) method.
protected  Object evaluate(String attributeName, Object value)
          Evaluate the supplied value for the supplied attribute name.
protected  String getDisplayString(Object value)
          Get the display value of the supplied Object, HTML escaped as required.
protected  String getDisplayString(Object value, PropertyEditor propertyEditor)
          Get the display value of the supplied Object, HTML escaped as required.
protected  void writeOptionalAttribute(TagWriter tagWriter, String attributeName, String value)
          Optionally writes the supplied value under the supplied attribute name into the supplied TagWriter.
protected abstract  int writeTagContent(TagWriter tagWriter)
          Subclasses should implement this method to perform tag content rendering.
 
Methods inherited from class org.springframework.web.servlet.tags.HtmlEscapingAwareTag
isHtmlEscape, setHtmlEscape
 
Methods inherited from class org.springframework.web.servlet.tags.RequestContextAwareTag
doCatch, doFinally, doStartTag, getRequestContext
 
Methods inherited from class javax.servlet.jsp.tagext.TagSupport
doAfterBody, doEndTag, findAncestorWithClass, getId, getParent, getValue, getValues, release, removeValue, setId, setPageContext, setParent, setValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractFormTag

public AbstractFormTag()
Method Detail

evaluate

protected Object evaluate(String attributeName,
                          Object value)
                   throws JspException
Evaluate the supplied value for the supplied attribute name. If the supplied value is null then null is returned, otherwise evaluation is handled using ExpressionEvaluationUtils.evaluate(String, String, javax.servlet.jsp.PageContext).

Throws:
JspException

writeOptionalAttribute

protected final void writeOptionalAttribute(TagWriter tagWriter,
                                            String attributeName,
                                            String value)
                                     throws JspException
Optionally writes the supplied value under the supplied attribute name into the supplied TagWriter. In this case, the supplied value is evaluated first and then the String representation is written as the attribute value. If the resultant String representation is null or empty, no attribute is written.

Throws:
JspException
See Also:
TagWriter.writeOptionalAttributeValue(String, String)

createTagWriter

protected TagWriter createTagWriter()
Create the TagWriter which all output will be written to. By default, the TagWriter writes its output to the JspWriter for the current PageContext. Subclasses may choose to change the Writer to which output is actually written.


doStartTagInternal

protected final int doStartTagInternal()
                                throws Exception
Provide a simple template method that calls createTagWriter() and passes the created TagWriter to the writeTagContent(TagWriter) method.

Specified by:
doStartTagInternal in class RequestContextAwareTag
Returns:
the value returned by writeTagContent(TagWriter)
Throws:
Exception - any exception, any checked one other than a JspException gets wrapped in a JspException by doStartTag
See Also:
TagSupport.doStartTag()

getDisplayString

protected String getDisplayString(Object value)
Get the display value of the supplied Object, HTML escaped as required. This version is not PropertyEditor-aware.


getDisplayString

protected String getDisplayString(Object value,
                                  PropertyEditor propertyEditor)
Get the display value of the supplied Object, HTML escaped as required. If the supplied value is not a String and the supplied PropertyEditor is not null then the PropertyEditor is used to obtain the display value.


writeTagContent

protected abstract int writeTagContent(TagWriter tagWriter)
                                throws JspException
Subclasses should implement this method to perform tag content rendering.

Returns:
valid tag render instruction as per Tag.doStartTag().
Throws:
JspException

The Spring Framework

Copyright © 2002-2007 The Spring Framework.