C:forEach

From OpenCms Wiki
(Difference between revisions)
Jump to: navigation, search
(Created page with "This tag is of course documented in a lot of other places, but since it is used extensively for openCMS development, I feel taht it has its use to be put here also. If you ha...")
 
(varStatus)
 
(5 intermediate revisions by one user not shown)
Line 1: Line 1:
This tag is of course documented in a lot of other places, but since it is used extensively for openCMS development, I feel taht it has its use to be put here also.
+
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:
+
If you have included the JSTL core tag lib like this:
 
<code lang="html4strict">
 
<code lang="html4strict">
 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Line 13: Line 13:
 
</c:forEach>
 
</c:forEach>
 
</code>
 
</code>
 +
 +
== 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 ==
 
== varStatus ==
Line 18: Line 28:
 
The optional varStatus variable has some useful properties to help you on this:
 
The optional varStatus variable has some useful properties to help you on this:
  
*current
+
*current - current element
*index
+
*index - 0 based index of the element in the list
 
*count  
 
*count  
 
*first
 
*first
 
*last
 
*last
*begin
 
*step
 
*end
 
  
 
'''Example:'''
 
'''Example:'''
Line 33: Line 40:
 
</c:forEach>
 
</c:forEach>
 
</code>
 
</code>
 +
 +
Iterating 5 to 10 item:
 +
<code lang="html4strict">
 +
<c:forEach var="yourItemOfCollectionVarName" items="${yourCollection}" begin="4" end="9" varStatus="yourStatus">
 +
  <div id="line-${yourStatus.index}">${yourItemOfCollectionVarName.name}</div>
 +
</c:forEach>
 +
</code>
 +
 +
== Sources ==
 +
 +
tutorialspoint.com/jsp/jstl_core_foreach_tag.htm
 +
 +
[[Category:Developing in OpenCms ]]

Latest revision as of 17:10, 13 August 2013

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