代码之家  ›  专栏  ›  技术社区  ›  Sri

cq5获取父节点属性

  •  5
  • Sri  · 技术社区  · 8 年前

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

    parentcomp 节点具有一些属性。 我正在尝试访问家长 父子公司 属性位于 childcomp 数量

    我不知道该怎么做。

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

    <%= currentNode.getPath() %>
    

    非常感谢。 斯里兰卡

    2 回复  |  直到 8 年前
        1
  •  7
  •   rakhi4110    8 年前

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

    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()

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

        2
  •  4
  •   toniedzwiedz    8 年前

    currentNode 是的实例 Node interface from the JCR API .

    一部分 节点 的合同是 getParent 方法,可用于获取对节点的父JCR节点的引用。

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

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