Hi List,
it seemed clear to me, that this construct:
<c:forEach items="${t.records}" var="x">
... (some inner logic)
</c:forEach>
should be equivalent to this one:
<%
for (Iterator it=t.getRecords(); it.hasNext(); ) {
String x = (String)it.next();
%>
... (some inner logic)
<% }
%>
But the forEach-version is not working as expected. What can be wrong?
Here are some quite strange effects:
1. The iterators-method "hasNext()" is called twice for every iteration
(ok: no problem, if the iterator is clean, but why?)
2. The loop-body is executed after hasNext() returned false.
But the next()-method is NOT called ??
The c:forEach-iterator seems to operate like this:
Iterator it = t.getRecords();
while (it.hasNext()) {
String x = (String)it.next();
boolean still_more = it.hasNext();
... here comes the body ...
}
What could this extra-check be good for?
Any help is greatly appreciated.
Kind regards,
Reinhard
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]