org.springframework.web.servlet.tags
Class BindTag

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.BindTag
All Implemented Interfaces:
java.io.Serializable, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag, javax.servlet.jsp.tagext.TryCatchFinally, EditorAwareTag

public class BindTag
extends HtmlEscapingAwareTag
implements EditorAwareTag

Bind tag, supporting evaluation of binding errors for a certain bean or bean property. Exposes a "status" variable of type BindStatus, to both Java expressions and JSP EL expressions.

Can be used to bind to any bean or bean property in the model. The specified path determines whether the tag exposes the status of the bean itself (showing object-level errors), a specific bean property (showing field errors), or a matching set of bean properties (showing all corresponding field errors).

The Errors object that has been bound using this tag is exposed to collaborating tags, as well as the bean property that this errors object applies to. Nested tags such as the TransformTag can access those exposed properties.

Author:
Rod Johnson, Juergen Hoeller
See Also:
setPath(java.lang.String), Serialized Form

Field Summary
static java.lang.String STATUS_VARIABLE_NAME
          Name of the exposed variable within the scope of this tag: "status".
 
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
BindTag()
           
 
Method Summary
 int doEndTag()
           
 void doFinally()
           
protected  int doStartTagInternal()
          Called by doStartTag to perform the actual work.
 java.beans.PropertyEditor getEditor()
          Retrieve the PropertyEditor for the property that this tag is currently bound to.
 Errors getErrors()
          Retrieve the Errors instance that this tag is currently bound to.
 java.lang.String getPath()
          Return the path that this tag applies to.
 java.lang.String getProperty()
          Retrieve the property that this tag is currently bound to, or null if bound to an object rather than a specific property.
 boolean isIgnoreNestedPath()
          Return whether to ignore a nested path, if any.
 void setIgnoreNestedPath(boolean ignoreNestedPath)
          Set whether to ignore a nested path, if any.
 void setPath(java.lang.String path)
          Set the path that this tag should apply.
 
Methods inherited from class org.springframework.web.servlet.tags.HtmlEscapingAwareTag
isDefaultHtmlEscape, 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, 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
 

Field Detail

STATUS_VARIABLE_NAME

public static final java.lang.String STATUS_VARIABLE_NAME
Name of the exposed variable within the scope of this tag: "status".

See Also:
Constant Field Values
Constructor Detail

BindTag

public BindTag()
Method Detail

setPath

public void setPath(java.lang.String path)
Set the path that this tag should apply. Can be a bean (e.g. "person") to get global errors, or a bean property (e.g. "person.name") to get field errors (also supporting nested fields and "person.na*" mappings). "person.*" will return all errors for the specified bean, both global and field errors.

See Also:
Errors.getGlobalErrors(), Errors.getFieldErrors()

getPath

public java.lang.String getPath()
Return the path that this tag applies to.


setIgnoreNestedPath

public void setIgnoreNestedPath(boolean ignoreNestedPath)
Set whether to ignore a nested path, if any. Default is to not ignore.


isIgnoreNestedPath

public boolean isIgnoreNestedPath()
Return whether to ignore a nested path, if any.


doStartTagInternal

protected final int doStartTagInternal()
                                throws java.lang.Exception
Description copied from class: RequestContextAwareTag
Called by doStartTag to perform the actual work.

Specified by:
doStartTagInternal in class RequestContextAwareTag
Returns:
same as TagSupport.doStartTag
Throws:
java.lang.Exception - any exception, any checked one other than a JspException gets wrapped in a JspException by doStartTag
See Also:
TagSupport.doStartTag()

doEndTag

public int doEndTag()
Specified by:
doEndTag in interface javax.servlet.jsp.tagext.Tag
Overrides:
doEndTag in class javax.servlet.jsp.tagext.TagSupport

getProperty

public final java.lang.String getProperty()
Retrieve the property that this tag is currently bound to, or null if bound to an object rather than a specific property. Intended for cooperating nesting tags.

Returns:
the property that this tag is currently bound to, or null if none

getErrors

public final Errors getErrors()
Retrieve the Errors instance that this tag is currently bound to. Intended for cooperating nesting tags.

Returns:
the current Errors instance, or null if none

getEditor

public final java.beans.PropertyEditor getEditor()
Description copied from interface: EditorAwareTag
Retrieve the PropertyEditor for the property that this tag is currently bound to. Intended for cooperating nesting tags.

Specified by:
getEditor in interface EditorAwareTag
Returns:
the current PropertyEditor, or null if none

doFinally

public void doFinally()
Specified by:
doFinally in interface javax.servlet.jsp.tagext.TryCatchFinally
Overrides:
doFinally in class RequestContextAwareTag