C:forEach
From OpenCms Wiki
This tag is not natice open CMS but the part of the JSTL core library. It is of course documented in a lot of other places, but since it is used extensively for openCMS development, I feel that it has its use to be put here also.
If you have included the JSTL core tag lib like this:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
you can use the c:forEach tag
<c:forEach var="yourItemOfCollectionVarName" items="${yourCollection}" varStatus="yourStatus"> <!-- your code goes here --> </c:forEach>
attributes
The c:forEach has the following attributes:
- begin - Element to start with (0 = first item, 1 = second item, ...)
- step - Precess every step item
- end - Element to end with (0 = first item, 1 = second item, ...)
- items
- var
- varStatus
varStatus
If you like to do something different for every x row or only for the last or first row, varStatus is helping a lot. The optional varStatus variable has some useful properties to help you on this:
- current - current element
- index - 0 based index of the element in the list
- count
- first
- last
Example:
<c:forEach var="yourItemOfCollectionVarName" items="${yourCollection}" varStatus="yourStatus"> <div id="line-${yourStatus.index}">${yourItemOfCollectionVarName.name}</div> </c:forEach>
Iterating 5 to 10 item:
<c:forEach var="yourItemOfCollectionVarName" items="${yourCollection}" begin="4" end="9" varStatus="yourStatus"> <div id="line-${yourStatus.index}">${yourItemOfCollectionVarName.name}</div> </c:forEach>
Sources
tutorialspoint.com/jsp/jstl_core_foreach_tag.htm