获取子节点返回无法循环错误

时间:2013-06-03 22:47:29

标签: java jackrabbit sling

我有一个非常基本的代码片段,它获取对象的currentNode并查看它以获取它的子节点。除了某些原因,这不起作用,我无法弄清楚为什么。 getChildNodes()假设返回一个可迭代的子项列表,但我得到的是:“无法循环使用节点类型的元素,其集合类型为 Iterable

Node currentNode = resource.adaptTo(Node.class)
for (Node n : JcrUtils.getChildNodes(currentNode)){
//do something
}

有什么想法吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

以下Sling JSP脚本适合我。 sling:defineObjects标签提供currentNode。

<%@page import="javax.jcr.Node,org.apache.jackrabbit.commons.JcrUtils" session="false"%>
<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0"%>
<sling:defineObjects/>
<%
for (Node n : JcrUtils.getChildNodes(currentNode)){
  out.println(n.getPath());
}
%>