Aem cq5获取父节点属性

Aem cq5获取父节点属性,aem,jcr,sling,Aem,Jcr,Sling,我有组件层次结构parsys->parentcomp->childcomp parentcomp节点具有一些属性。 我正在尝试访问childcomp级别的parentparentcomp属性 我不知道该怎么做 知道如何获取父节点属性吗。 我知道下面的代码,它给了我一个以父节点作为选择器的路径。 但是,不知道如何精确地到达特定节点并读取这些属性 <%= currentNode.getPath() %> 谢谢,, Sri是的一个实例 Node契约的一部分是getParent方法,您

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

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

我不知道该怎么做

知道如何获取父节点属性吗。 我知道下面的代码,它给了我一个以父节点作为选择器的路径。 但是,不知道如何精确地到达特定节点并读取这些属性

<%= currentNode.getPath() %>

谢谢,,
Sri是的一个实例

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

如果内容结构与您描述的一样,
currentNode.getParent().getProperties()
将为您获取
parentcomp
节点的属性。然而,如果您所描述的是AEM组件,那么您可能会在它们之间有一些
jcr:content
节点。仔细检查CRXDE中的实际结构


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

有很多方法可以实现这一点

  • 使用,其中通过包含
    global.jsp

    ValueMap parentProps=resource.getParent().getValueMap()//在AEM的最新版本中
    ValueMap parentProps=resource.getParent().adapto(ValueMap.class)//旧版本

  • 使用使用
    currentNode
    对象

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


  • 我个人更喜欢使用资源API来实现这一点,因为它使处理属性更简单。

    我使用资源方法来实现这一点。ValueMap parentProps=resource.getParent().adapto(ValueMap.class);
    <%= currentNode.getPath() %>