如何在Sightly中访问data-sly-list项的属性?

时间:2015-10-29 15:33:31

标签: sling sightly

我正在使用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对象上的属性?

1 个答案:

答案 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} }