Слинг - слинг AEM:члены из новой коллекции

Недавно я вошел в мир AEM и sling (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]);

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


person ogottwald    schedule 08.09.2015    source источник


Ответы (2)


Правильный способ получить элементы коллекции — использовать 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() %><%
} 
person Ben Helleman    schedule 19.09.2015

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

person ogottwald    schedule 09.09.2015