2015-09-08 3 views
0

Я недавно вошел в мир AEM и sling (api). То, что я пытаюсь сделать, это написать код Java для получения элементов sling: members и его свойств sling: resources для новой коллекции, которую я создал на ощупь. Я могу ссылаться на свойства коллекции с ResourceResolver.resolve (путь). Стропы: участники отображаются как {....}. Должен ли я делать отдельный ResourceResolver?Sling - AEM sling: участники новой коллекции

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]); 

Я полностью не знаком? Любая помощь будет принята с благодарностью.

ответ

0

Оказывается, это правильный способ сделать это и работает.

1

Правильный способ получения членами коллекции - использовать API 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() %><% 
} 
+0

Благодарим за чистый код. – ogottwald

Смежные вопросы