<c:when test="${a boolean expr}">
// do something
</c:when>
<c:when test="${another boolean expr}">
// do something else
</c:when>
<c:otherwise>
// do this when nothing else is true
</c:otherwise>
</c:choose>
The choose tag accepts no attributes and can only
contain when tag(s) and an optional otherwise tag.
<c:when> - processes the body if test is true and no
other previous <c:when> tags evaluated to true.
Attribute Description Rqd Default
test Condition to evaluate Yes
None
<c:otherwise> - processes the body if no other
previous <c:when> condition matched. This tag
accepts no attributes and, if present, must be the last
tag in the <c:choose> body.
Iterator Actions
Actions that loop over collections, for a fixed number
of times, or over a set of string tokens. These
actions share the following attributes for iterating over
a subset of elements.
Attribute Description Rqd Default
begin Zero-based index of first item
to process, inclusive.
No 0
end Zero-based index of last item
to process, inclusive.
No
Last item
step
Process every stepth element
(e.g 2 = every second
element).
No 1
Attribute Description Rqd Default
varStatus Name of variable to hold the
loop status with the following
properties:
•
index – position of the
current item
•
count – number of times
through the loop (starting
with 1)
•
first – boolean
indicator if this is the first
iteration
•
last – boolean indicator
if this is the last iteration
No
None
<c:forEach> - repeats the nested body content
over a collection or for a fixed number of times.
<c:forEach items="${user.languages}"
var="lang" varStatus="status">
<c:if test="${status.first}">
You speak these languages:<br><ul>
</c:if>
<li><c:out value="${lang}"/></li>
<c:if test="${status.last}"></ul></c:if>
</c:forEach>
Attribute Description Rqd
Default
var Name of variable to hold
the current item. This
variable has only nested
visibility.
No
None
items Collection, iterator, map, or
array to loop over.
No
None
<c:forTokens> - repeats the nested body
content for each token of a delimited string.
<c:set var="users">Fred,Joe,Mary<c:set>
<c:forTokens var="name" items="${users}"
delims=",">
<c:out value="${name}"/><br/>
</c:forTokens>
Attribute Description Rqd
Default
Attribute Description Rqd
Default
var Name of variable to hold
the current token. This
variable has only nested
visibility.
No
None
items String of tokens to loop
over.
Yes
None
delims Set of characters that
separate the tokens (e.g.
delims=”,;” will tokenize a
string separated by
commas or semi-colons).
Yes
None
URL Related Actions
Actions for importing content from URLs, building
URLs, and redirecting.
<c:import> - imports the content of a URL-based
resource. Action may include nested
<c:param>
tags to specify the query string (unless the
varReader
attribute is specified).
<c:import url="includes/header.jsp">
<c:param name="title">Hello World</c:param>
</c:import>
Attribute Description Rqd Default
url URL of the resource to
import.
Yes
None
context Name of the context
(beginning with a /) of some
other local web application to
import the resource from.
No
Current
context
var Name of the variable to hold
the imported content as a
String.
No
None
scope
Scope of the var variable
No page
varReader Name of the variable to hold
the imported content as a
Reader. This variable has
only nested visibility so that
the reader will always be
closed.
No
None