<x:forEach
var="<string>"
select="<string>"
begin="<int>"
end="<int>"
step="<int>"
varStatus="<string>">
...
</x:forEach>
Name | Description |
var | Name of the scoped variable which holds the current item in the iteration. This variable’s type depends on the XPath expression in the select attribute. |
select | XPath expression to evaluate. |
begin | Begin index of the iteration. Iteration begins at the value mentioned in this attribute value. First item has index of 0. |
end | End index of the iteration. Iteration stops at the value mentioned in this attribute value (inclusive). |
step | Iteration processes for the step value mentioned in this attribute. |
varStatus | Name of the scoped variable which holds the loop status of the current iteration. This variable is of type javax.servlet.jsp.jstl.core.LoopTagStatus and has nested visibility. |
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title><x:forEach> Demo</title>
</head>
<body>
<h1><x:forEach> Demo</h1>
<c:import
url="http://localhost:8080/JSTL-Tag-Reference/tag-types/xml/citizens.xml"
var="citizenXML"/>
<x:parse var="doc" xml="${citizenXML}" />
<table border="1">
<x:forEach var="citizen" select="$doc/citizens/citizen">
<tr>
<td><x:out select="ssn" /></td>
<td><x:out select="firstname" /></td>
<td><x:out select="lastname" /></td>
<td><x:out select="role" /></td>
<td><x:out select="salary"/></td>
</tr>
</x:forEach>
</table>
</body>
</html> <?xml version='1.0' encoding='UTF-8' standalone='no'?>
<citizens>
<citizen>
<ssn>Z345T</ssn>
<firstname>Cheryl</firstname>
<lastname>Johnson</lastname>
<role>Manager</role>
<salary>12000</salary>
</citizen>
<citizen>
<ssn>Z446T</ssn>
<firstname>John</firstname>
<lastname>Smith</lastname>
<role>Employee</role>
<salary>1000</salary>
</citizen>
<citizen>
<ssn>Z335T</ssn>
<firstname>Justin</firstname>
<lastname>Claire</lastname>
<role>Senior Manager</role>
<salary>14000</salary>
</citizen>
<citizen>
<ssn>Z389T</ssn>
<firstname>Clark</firstname>
<lastname>Rick</lastname>
<role>Employee</role>
<salary>2000</salary>
</citizen>
</citizens>
The <x:forEach> tag is the XML counterpart of the core iteration tag. This tag is used to iterate over nodes and to display node values. This tag also has begin, end, step and varStatus attributes to control the iteration behavior.
if | out | param | parse | set | transform | choose, when, otherwise
Nam Ha Minh is certified Java programmer (SCJP and SCWCD). He began programming with Java back in the days of Java 1.4 and has been passionate about it ever since. You can connect with him on Facebook and watch his Java videos on YouTube.