我有以下代码:
<c:set var="res" value="${sling:getResource(resourceResolver, currentPage.path)}" />
<sling:listChildren resource="${res}" var="children" />
${children} length ${fn:length(children)}
<c:forEach var="child" items="${children}">
<li>here${child.path}</li>
</c:forEach>
我的目标是吐出我当前页面的三个孩子。当我打印出来时${children}
,我得到一个对迭代器 ( org.apache.sling.resourceresolver.impl.helper.ResourceIteratorDecorator@3b93b521
) 的对象引用,并且长度返回 3。问题是我无法进入循环。根据sling taglibs docs,这forEach
应该能够处理迭代器对象。有什么我想念的吗?该findResources
函数还返回 aResourceIteratorDecorator
当它应该是一个普通的java.util.Iterator
。
我确实找到了ResourceIteratorDecorator 类并且它 extends Iterator<Resource>
,所以这个类本身应该不是问题。c:forEach
已知迭代器对象有问题吗?