cq5 获取父节点属性

cq5 get parent node properties

我有组件层次结构 parsys -> parentcomp -> childcomp

parentcomp 节点有一些属性。 我正在尝试访问 childcomp 级别的父 parentcomp 属性。

我不知道该怎么做。

知道如何获取父节点属性。 我知道以下代码,为我提供了将父节点作为选择器之一的路径。 但是,不确定如何到达特定的节点并读取这些属性。

<%= currentNode.getPath() %>

谢谢, 斯里

currentNodeNode interface from the JCR API.

的实例

Node 契约的一部分是 getParent 方法,您可以使用该方法获取对节点的父 JCR 节点的引用。

如果内容结构与您描述的一样,currentNode.getParent().getProperties() 将为您提供 parentcomp 节点的属性。但是,如果您描述的是 AEM 组件,您可能会在两者之间有一些 jcr:content 节点。 Double-check CRXDE 中的实际结构。

如果您只对一个特定的 属性 感兴趣,您可以改用 getProperty

有很多方法可以实现。

  1. 使用 Resource API,其中 resource 对象可通过包含 global.jsp

    ValueMap parentProps = resource.getParent().getValueMap(); //in latest versions of AEM ValueMap parentProps = resource.getParent().adaptTo(ValueMap.class); //older versions

  2. 使用 Node API 使用 currentNode 对象。

    PropertyIterator propertyIterator = currentNode.getParent().getProperties()

我个人更喜欢使用 Resource API 来实现相同的目的,因为它使处理属性变得更加简单。