我正在使用Sling 8(不是AEM)。我有以下模板:
<div data-sly-list.child="${resource.listChildren}">
${child.name} | ${child.path} | ${child.properties['jcr:title'] || 'no title'}
</div>
输出(对于单个孩子)是
hello_world | /content/blog/posts/hello_world | no title
我知道子资源上有一个jcr:title属性,因为我已经使用HTTP调用确认了它。
如何访问child
对象上的属性?
答案 0 :(得分:3)
child
是一个Resource,它没有getProperties()但有getValueMap()
,所以你应该使用:
${child.valueMap.jcr:title || 'no title'}
注1:变量名中允许使用冒号来支持jcr:title
等典型的JCR名称。
注意2:getValueMap()仅在Sling API 2.7.0包中可用,以前只能使用resource.adaptTo(ValueMap.class)
,表达语言不支持,并且需要此解决方法:{{3} }