2016-08-06 2 views
2

Я хочу перечислить все страницы, которые существуют в каталоге/content/abcAEM: Как перечислить все страницы в фиксированном каталоге (JSP)?

Мне больше всего нравятся страницы, которые существуют именно в этом каталоге (ничего в более глубоких подпапках, без дочерних страниц и т. Д.).

Может ли кто-нибудь помочь мне предоставить код JSP, который я мог бы использовать для достижения этого?

Спасибо!

ответ

1

Используйте метод listChildren() класса Resource, чтобы перечислить все ресурсы в этом каталоге. Итерируйте их и проверьте, является ли ресурс страницей.

Resource parentResource = resourceResolver.getResource("/content/abc"); 

Iterator<Resource> resources = parentResource.listChildren(); 
while (resources.hasNext()) { 
     Resource res = resources.next(); 
     if (res.adaptTo(Page.class) != null) { 
      //it's a page. Do stuff with this 
     } 
} 
+0

[Удалить] ........ – user3444873

+0

Нет. Ваш код неправильный. Он будет перечислять все дочерние ресурсы, а не только страницы. Принимая во внимание, что в вопросе упоминается, что вам нужны только страницы, которые существуют в каталоге. – rakhi4110

+0

Но/content/abc не является страницей, поэтому вызов Iterator не будет выполнен. – user3444873

0

Этот каталог также является страницей? Если да, то вы можете использовать страницу API для этого и Page # listChildren(), что-то вдоль линий:

Page thePage = resource.adaptTo(Page.class); 
if (thePage == null) { 
    //not a page, fail 
    return; 
} 
for(Iterator<Page> children = thePage.listChildren(); children.hasNext();) { 
    Page child = children.next(); 
    // do something 
} 

Если каталог не страница, то вы должны быть хорошо с ответом rakhi4110 в