cq5获取父节点属性

时间:2015-12-28 19:34:36

标签: cq5 aem jcr sling

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

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

我不知道该怎么做。

知道如何获取父节点属性。 我知道下面的代码,给我一个父节点作为选择器之一的路径。 但是,不确定如何获得确切的特定节点并阅读这些属性。

<%= currentNode.getPath() %>

谢谢你, 斯

2 个答案:

答案 0 :(得分:6)

有很多方法可以实现这一目标。

  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. 使用currentNode对象使用Node API

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

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

答案 1 :(得分:4)

currentNodeNode interface from the JCR API

的一个实例

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

如果内容结构与您描述的一样,currentNode.getParent().getProperties()将为您提供parentcomp节点的属性。但是,如果您要描述的是AEM组件,那么您可能会在其间拥有一些jcr:content个节点。仔细检查CRXDE中的实际结构。

如果您只对单个特定属性感兴趣,则可以改为使用getProperty