我最近进入了AEM和sling (api)的世界。我要做的是编写Java代码来获取sling:members及其属性sling:resources,用于我在touch中创建的新集合。我可以使用ResourceResolver.resolve(路径)引用集合属性。吊衣:成员显示为{ ....}。我必须做一个单独的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]);我说得太离谱了吗?任何帮助都将不胜感激。
发布于 2015-09-20 04:43:26
获取集合成员的正确方法是使用ResourceCollection应用编程接口。为此,您需要获取指向集合的资源,然后将其调整为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() %><%
} 发布于 2015-09-09 23:55:30
事实证明,这是正确的方法,并且正在发挥作用。
https://stackoverflow.com/questions/32468426
复制相似问题