cq5 获取父节点属性
cq5 get parent node properties
我有组件层次结构 parsys -> parentcomp -> childcomp
parentcomp
节点有一些属性。
我正在尝试访问 childcomp
级别的父 parentcomp
属性。
我不知道该怎么做。
知道如何获取父节点属性。
我知道以下代码,为我提供了将父节点作为选择器之一的路径。
但是,不确定如何到达特定的节点并读取这些属性。
<%= currentNode.getPath() %>
谢谢,
斯里
currentNode
是 Node
interface from the JCR API.
的实例
Node
契约的一部分是 getParent
方法,您可以使用该方法获取对节点的父 JCR 节点的引用。
如果内容结构与您描述的一样,currentNode.getParent().getProperties()
将为您提供 parentcomp
节点的属性。但是,如果您描述的是 AEM 组件,您可能会在两者之间有一些 jcr:content
节点。 Double-check CRXDE 中的实际结构。
如果您只对一个特定的 属性 感兴趣,您可以改用 getProperty
。
有很多方法可以实现。
使用 Resource API,其中 resource
对象可通过包含 global.jsp
ValueMap parentProps = resource.getParent().getValueMap(); //in latest versions of AEM
ValueMap parentProps = resource.getParent().adaptTo(ValueMap.class); //older versions
使用 Node API 使用 currentNode
对象。
PropertyIterator propertyIterator = currentNode.getParent().getProperties()
我个人更喜欢使用 Resource API 来实现相同的目的,因为它使处理属性变得更加简单。
我有组件层次结构 parsys -> parentcomp -> childcomp
parentcomp
节点有一些属性。
我正在尝试访问 childcomp
级别的父 parentcomp
属性。
我不知道该怎么做。
知道如何获取父节点属性。 我知道以下代码,为我提供了将父节点作为选择器之一的路径。 但是,不确定如何到达特定的节点并读取这些属性。
<%= currentNode.getPath() %>
谢谢, 斯里
currentNode
是 Node
interface from the JCR API.
Node
契约的一部分是 getParent
方法,您可以使用该方法获取对节点的父 JCR 节点的引用。
如果内容结构与您描述的一样,currentNode.getParent().getProperties()
将为您提供 parentcomp
节点的属性。但是,如果您描述的是 AEM 组件,您可能会在两者之间有一些 jcr:content
节点。 Double-check CRXDE 中的实际结构。
如果您只对一个特定的 属性 感兴趣,您可以改用 getProperty
。
有很多方法可以实现。
使用 Resource API,其中
resource
对象可通过包含global.jsp
ValueMap parentProps = resource.getParent().getValueMap(); //in latest versions of AEM ValueMap parentProps = resource.getParent().adaptTo(ValueMap.class); //older versions
使用 Node API 使用
currentNode
对象。PropertyIterator propertyIterator = currentNode.getParent().getProperties()
我个人更喜欢使用 Resource API 来实现相同的目的,因为它使处理属性变得更加简单。