我有组件层次结构parsys -> parentcomp -> childcomp
parentcomp
节点有一些属性。
我正在尝试访问parentcomp
级别的父childcomp
个属性。
我不知道该怎么做。
知道如何获取父节点属性。 我知道下面的代码,给我一个父节点作为选择器之一的路径。 但是,不确定如何获得确切的特定节点并阅读这些属性。
<%= currentNode.getPath() %>
谢谢你, 斯
答案 0 :(得分:6)
有很多方法可以实现这一目标。
使用Resource API,通过加入resource
global.jsp
对象可用
ValueMap parentProps = resource.getParent().getValueMap(); //in latest versions of AEM
ValueMap parentProps = resource.getParent().adaptTo(ValueMap.class); //older versions
使用currentNode
对象使用Node API。
PropertyIterator propertyIterator = currentNode.getParent().getProperties()
我个人更喜欢使用Resource API来实现相同的功能,因为它使处理属性变得更加简单。
答案 1 :(得分:4)
currentNode
是Node
interface from the JCR API。
Node
合同的一部分是getParent
方法,您可以使用该方法获取对节点的父JCR节点的引用。
如果内容结构与您描述的一样,currentNode.getParent().getProperties()
将为您提供parentcomp
节点的属性。但是,如果您要描述的是AEM组件,那么您可能会在其间拥有一些jcr:content
个节点。仔细检查CRXDE中的实际结构。
如果您只对单个特定属性感兴趣,则可以改为使用getProperty
。