[英]Sling - AEM sling:members from a new collection
我最近进入了AEM和吊索(api)领域。 我想要做的是编写Java代码来获取sling:members及其属性sling:resources,以获取我在触摸中创建的新集合。 我可以使用ResourceResolver.resolve(path)引用集合属性。 sling:members显示为{....}。 我需要做一个单独的ResourceResolver吗?
String path="/content/dam/collections/m/fafdsfdaf/my_collection";
Resource resourceMember = resourceResolver.resolve(path+"/sling:members");
ValueMap metaData = resourceMember.adaptTo(ValueMap.class);
String[] slingResources = metaData.get("sling:resources", new String[0]);
我完全不合时宜吗? 任何帮助将不胜感激。
获取集合成员的正确方法是使用ResourceCollection API。 为此,您获得指向集合的资源,然后将其调整为ResourceCollection
。 从那里调用getResources()
,它返回一个遍历成员的迭代器。
Resource r = resourceResolver.getResource("/content/dam/collections/m/fafdsfdaf/my_collection");
ResourceCollection collection = r.adaptTo(ResourceCollection.class);
Iterator<Resource> it = collection.getResources();
while(it.hasNext()) {
Resource p = it.next();
%><%= p.getPath() %><%
}
事实证明,这是执行此操作的正确方法,并且正在起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.