Предположим, у вас есть следующий код:
<c:if test="${fn:length(myIterator) > 0}">
<span>blabla</span>
<c:forEach var="myVar" items="${myIterator}" varStatus="status">
// some stuff
</c:forEach>
<br />
</c:if>
Обратите внимание, что myIterator является итератором (сюрприз, сюрприз * g).
Проблема заключается в том, что я не оказываюсь вкаждый цикл и не вижу "// некоторые вещи", чтобы произойти.Я думаю, причина в том, что fn: length (myIterator) уже перебрал итератор, чтобы определить его размер, чтобы мы уже достигли конца при достижении цикла forEach.
Я не видел ни одного элегантного способасбросить итератор вручную или около того.
Конечно, я мог бы попытаться использовать код скриптлета (что-то вроде <% myIterator.reset ()%>, но я бы хотел этого избежать.
Iтакже пробовал что-то вроде:
<c:if test="${not empty myIterator}">
Но это тоже не сработало (даже не попало в тело условия if).
Какие-нибудь изящные предложения?
Спасибо.