JSTL Core tag – foreach() : Function



These tags exist as a good alternative to embedding a Java for, while, or do-while loop via a scriptlet. The <c:forEach> tag is the more commonly used tag because it iterates over a collection of objects. The <c:forTokens> tag is used to break a string into tokens and iterate through each of the tokens.

Attribute:

The <c:forEach> tag has following attributes:

Attribute Description Required Default
items Information to loop over No None
begin Element to start with (0 = first item, 1 = second item, …) No 0
end Element to end with (0 = first item, 1 = second item, …) No Last element
step Process every step items No 1
var Name of the variable to expose the current item No None
varStatus Name of the variable to expose the loop status No None

The <c:forTokens> tag has similar attributes as <c:forEach> except one additional attribute delims which specifies sharacters to use as delimiters.

Attribute Description Required Default
delims Characters to use as delimiters Yes None

Example for <c:forEach>:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>JSTL Tag Example</title>
</head>
<body>

<c:forEach var="i" begin="1" end="5">
   Value of i : <c:out value="${i}"/><p>
</c:forEach>

</body>
</html>

Output :

Value of i : 1
Value of i : 2
Value of i : 3
Value of i : 4
Value of i : 5

Example for <c:forTokens>:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>JSTL Tag Example</title>
</head>
<body>

<c:forTokens items="A,B,C,D,E" delims="," var="name">
   <c:out value="${name}"/><p>
</c:forTokens>

</body>
</html>

Output :

A
B
C
D
E