Class AbstractFormTag
- java.lang.Object
- javax.servlet.jsp.tagext.TagSupport
- org.springframework.web.servlet.tags.RequestContextAwareTag
- org.springframework.web.servlet.tags.HtmlEscapingAwareTag
- org.springframework.web.servlet.tags.form.AbstractFormTag
- All Implemented Interfaces:
Serializable
,IterationTag
,JspTag
,Tag
,TryCatchFinally
- Direct Known Subclasses:
AbstractDataBoundFormElementTag
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 aTagWriter
.Subclasses should implement the
writeTagContent(TagWriter)
to perform actual tag rendering.Subclasses (or test classes) can override the
createTagWriter()
method to redirect output to aWriter
other than theJspWriter
associated with the currentPageContext
.- 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
Constructors Constructor Description AbstractFormTag()
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected TagWriter
createTagWriter()
Create theTagWriter
which all output will be written to.protected int
doStartTagInternal()
Provide a simple template method that callscreateTagWriter()
and passes the createdTagWriter
to thewriteTagContent(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 suppliedObject
, HTML escaped as required.protected String
getDisplayString(Object value, PropertyEditor propertyEditor)
Get the display value of the suppliedObject
, HTML escaped as required.protected boolean
isDefaultHtmlEscape()
Overridden to default totrue
in case of no explicit default given.protected void
writeOptionalAttribute(TagWriter tagWriter, String attributeName, String value)
Optionally writes the supplied value under the supplied attribute name into the suppliedTagWriter
.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
htmlEscape, isHtmlEscape, isResponseEncodedHtmlEscape, 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
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.The default implementation simply returns the given value as-is.
- 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 suppliedTagWriter
. In this case, the supplied value isevaluated
first and then theString representation
is written as the attribute value. If the resultantString
representation isnull
or empty, no attribute is written.
createTagWriter
protected TagWriter createTagWriter()
Create theTagWriter
which all output will be written to. By default, theTagWriter
writes its output to theJspWriter
for the currentPageContext
. Subclasses may choose to change theWriter
to which output is actually written.
doStartTagInternal
protected final int doStartTagInternal() throws Exception
Provide a simple template method that callscreateTagWriter()
and passes the createdTagWriter
to thewriteTagContent(TagWriter)
method.- Specified by:
doStartTagInternal
in classRequestContextAwareTag
- 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 suppliedObject
, HTML escaped as required. This version is notPropertyEditor
-aware.
getDisplayString
protected String getDisplayString(Object value, PropertyEditor propertyEditor)
Get the display value of the suppliedObject
, HTML escaped as required. If the supplied value is not aString
and the suppliedPropertyEditor
is not null then thePropertyEditor
is used to obtain the display value.
isDefaultHtmlEscape
protected boolean isDefaultHtmlEscape()
Overridden to default totrue
in case of no explicit default given.- Overrides:
isDefaultHtmlEscape
in classHtmlEscapingAwareTag
- See Also:
RequestContextAwareTag.getRequestContext()
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