Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取返回的子节点无法循环错误_Java_Jackrabbit_Sling - Fatal编程技术网

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

Java 获取返回的子节点无法循环错误,java,jackrabbit,sling,Java,Jackrabbit,Sling,我有一个非常基本的代码片段,可以获取对象的currentNode并查看它的子节点。除了一些原因,这不起作用,我不明白为什么getChildNodes()被假定为返回一个iterable子元素列表,但我得到的只是一个:“不能使用类型为node的元素和类型为iterable Node currentNode = resource.adaptTo(Node.class) for (Node n : JcrUtils.getChildNodes(currentNode)){ //do something

我有一个非常基本的代码片段,可以获取对象的currentNode并查看它的子节点。除了一些原因,这不起作用,我不明白为什么
getChildNodes()
被假定为返回一个iterable子元素列表,但我得到的只是一个:“不能使用类型为node的元素和类型为iterable

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

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

以下Sling JSP脚本适合我。Sling:DefineObject标记提供了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());
}
%>


这可能意味着返回的集合是
Iterable
s而不是
Node
。请尝试
Iterable i
而不是
Node n
@BheshGurung感谢您的回复,但我仍然收到一个错误,这次它说不能使用Iterable类型的元素和类型的集合循环iterable@DelmonYoungc您提供的ode看起来不错,我想这是另一个问题。是编译器错误还是运行时错误?请发布准确的错误消息。