C:forEach

From OpenCms Wiki
Jump to: navigation, search

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

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox