首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过sightly访问特定资源中的属性

通过sightly访问特定资源中的属性
EN

Stack Overflow用户
提问于 2016-09-28 14:53:02
回答 2查看 2.3K关注 0票数 2

我想要访问资源中的特定属性。

主资源有两个孩子,应用程序在第一个孩子中。我想从第二个孩子那里得到一处房产。

我能找到像这样的东西吗:

代码语言:javascript
运行
AI代码解释
复制
 ${resource.parent.child[1].valueMap.title} 

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2016-09-28 20:43:17

首先-请注意,除非您使用:OrderedFolder或其他有序类型,否则不能保证sling子项的顺序为。因此,试图得到“第二个”孩子可能甚至没有意义。

话虽如此,我可能没有考虑到需要获取第二个孩子的一些有效用例--据我所知,您将需要创建一个Java或JS对象并使用Use Api

简单的Java对象示例

代码语言:javascript
运行
AI代码解释
复制
package apps.your_app.components.yourComponent;

import com.adobe.cq.sightly.WCMUsePojo;
import org.apache.sling.api.resource.Resource;

import java.util.Iterator;

public class Model extends WCMUsePojo {

    @Override
    public void activate() throws Exception {
        //do some stuff if needed
    }

    public Resource getSecondSibling() {
        Resource parent = getResource().getParent();
        Resource secondSib = null;
        Iterator<Resource> children = parent.listChildren();

        //find the second child
        for (int i = 0; i < 2; i++)
            secondSib = children.next();
        return secondSib;
    }
}

在视觉上使用它:

代码语言:javascript
运行
AI代码解释
复制
<sly data-sly-use.model="Model">${model.secondSibling.propertyName}</sly>
票数 2
EN

Stack Overflow用户

发布于 2016-09-28 21:17:41

下面是我用来将内容转换为JSON的另一个示例。JSON的内容被解析为对象,并且每个对象都有属性。

代码语言:javascript
运行
AI代码解释
复制
<div data-sly-use.jsonHelper="${'com.service.helpers.JSONHelper'
  @json=model.getRawJson}">

  ${jsonHelper.parsedJSON[item].commodityList[subitem].name}
  ...
</div>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39751000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档