AEM:如何列出固定目录(JSP)中的所有页面?

时间:2016-08-06 03:19:37

标签: jsp aem sightly

我想列出目录/ content / abc

中存在的所有页面

我只关心这个目录中确切存在的页面(没有更深层的子文件夹,没有子页面等)。

有人可以帮我提供我可能用来实现此目的的JSP代码吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

使用Resource类的listChildren()方法列出该目录下的所有资源。迭代它们并检查资源是否是Page。

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
        }
}

答案 1 :(得分:0)

该目录也是一个页面吗? 如果是这样,你可以使用Page API for Page和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的回答很好