org.apache.taglibs.standard.tag.common.core
Class ForEachSupport
java.lang.Object
javax.servlet.jsp.tagext.TagSupport
javax.servlet.jsp.jstl.core.LoopTagSupport
org.apache.taglibs.standard.tag.common.core.ForEachSupport
- All Implemented Interfaces:
- Serializable, LoopTag, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag, javax.servlet.jsp.tagext.TryCatchFinally
- Direct Known Subclasses:
- ForEachTag, ForEachTag
public abstract class ForEachSupport
- extends LoopTagSupport
Support for tag handlers for <forEach>, the core iteration
tag in JSTL 1.0. This class extends LoopTagSupport and provides
ForEach-specific functionality. The rtexprvalue library and the
expression-evaluating library each have handlers that extend this
class.
Localized here is the logic for handling the veritable smorgasbord
of types supported by <forEach>, including arrays,
Collections, and others. To see how the actual iteration is controlled,
review the javax.servlet.jsp.jstl.core.LoopTagSupport class instead.
- Author:
- Shawn Bayern
- See Also:
LoopTagSupport
,
Serialized Form
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 |
Methods inherited from class javax.servlet.jsp.jstl.core.LoopTagSupport |
doAfterBody, doCatch, doFinally, doStartTag, getCurrent, getDelims, getLoopStatus, setVar, setVarStatus, validateBegin, validateEnd, validateStep |
Methods inherited from class javax.servlet.jsp.tagext.TagSupport |
doEndTag, findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface javax.servlet.jsp.tagext.Tag |
doEndTag, getParent, setPageContext, setParent |
items
protected ForEachSupport.ForEachIterator items
rawItems
protected Object rawItems
ForEachSupport
public ForEachSupport()
hasNext
protected boolean hasNext()
throws javax.servlet.jsp.JspTagException
- Description copied from class:
LoopTagSupport
Returns information concerning the availability of more items
over which to iterate. This method must be provided by concrete
subclasses of LoopTagSupport to assist the iterative logic
provided by the supporting base class.
See next for more information about the
purpose and expectations behind this tag.
- Specified by:
hasNext
in class LoopTagSupport
- Returns:
- true if there is at least one more item to iterate
over, false otherwise
- Throws:
javax.servlet.jsp.JspTagException
- See Also:
LoopTagSupport.next()
next
protected Object next()
throws javax.servlet.jsp.JspTagException
- Description copied from class:
LoopTagSupport
Returns the next object over which the tag should iterate. This
method must be provided by concrete subclasses of LoopTagSupport
to inform the base logic about what objects it should iterate over.
It is expected that this method will generally be backed by an
Iterator, but this will not always be the case. In particular, if
retrieving the next object raises the possibility of an exception
being thrown, this method allows that exception to propagate back
to the JSP container as a JspTagException; a standalone Iterator
would not be able to do this. (This explains why LoopTagSupport
does not simply call for an Iterator from its subtags.)
- Specified by:
next
in class LoopTagSupport
- Returns:
- the java.lang.Object to use in the next round of iteration
- Throws:
javax.servlet.jsp.JspTagException
- for other, unexpected exceptions
prepare
protected void prepare()
throws javax.servlet.jsp.JspTagException
- Description copied from class:
LoopTagSupport
Prepares for a single tag invocation. Specifically, allows
subclasses to prepare for calls to hasNext() and next().
Subclasses can assume that prepare() will be called once for
each invocation of doStartTag() in the superclass.
- Specified by:
prepare
in class LoopTagSupport
- Throws:
javax.servlet.jsp.JspTagException
release
public void release()
- Description copied from class:
LoopTagSupport
- Releases any resources this LoopTagSupport may have (or inherit).
- Specified by:
release
in interface javax.servlet.jsp.tagext.Tag
- Overrides:
release
in class LoopTagSupport
supportedTypeForEachIterator
protected ForEachSupport.ForEachIterator supportedTypeForEachIterator(Object o)
throws javax.servlet.jsp.JspTagException
- Throws:
javax.servlet.jsp.JspTagException
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(Object o)
throws javax.servlet.jsp.JspTagException
- Throws:
javax.servlet.jsp.JspTagException
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(Object[] a)
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(boolean[] a)
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(byte[] a)
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(char[] a)
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(short[] a)
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(int[] a)
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(long[] a)
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(float[] a)
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(double[] a)
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(Collection c)
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(Iterator i)
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(Enumeration e)
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(Map m)
toForEachIterator
protected ForEachSupport.ForEachIterator toForEachIterator(String s)
Copyright © 2012 JBoss by Red Hat. All Rights Reserved.