如何获得所有的孩子,孙子使用根路径页面的url

  • 本文关键字:路径 url 何获得 孩子 aem
  • 更新时间 :
  • 英文 :


我有一个根页面的路径,我想检索根页面的所有子页面和根页面的孙子和孙子。我的结构是这样的

rootPage
    |
    |
    |---------childPage
                    |
                    |
                    |---------grandChildPage
                                    |
                                    |
                                    |
                                    |----------------------grandGrandChildPages

我想要所有这些页面的路径。我怎么才能得到这个?目前我正在使用这个

adminSession = repository.loginAdministrative( repository.getDefaultWorkspace());
                   ResourceResolver resourceResolver = request.getResourceResolver();
                   PageManager pageManager = resourceResolver.adaptTo(PageManager.class);
                   List<String>pageList = new ArrayList();
                    Page rootPage = pageManager.getPage("/content/abc/roi");
                    Iterator<Page> rootPageIterator = rootPage.listChildren();
                    while(rootPageIterator.hasNext())
                    {
                    Page childPage =    rootPageIterator.next();
                    String path = childPage.getPath();
                    pageList.add(path);     
                    }

但它为我提供了根页面的子页面,如果我使用rootPage.hasChild(),那么我必须传递字符串,我不能,因为我现在不知道页面的名称。是否有任何方法返回布尔值,无论页面是否有子页面。我只是想要根页面内的所有页面的列表,其中包括孙子以及根页面的孙子。

有人能帮忙吗?

从AEM 5.6开始,您可以使用com.day.cq.wcm.api.Page接口中提供的listChildren(Filter<Page> filter, boolean deep)方法。

这将接受一个PageFilter和一个布尔值作为参数。

如果你想过滤无效和隐藏的页面,可以使用pageffilter。如果您想要列出所有的页面,请在此参数中传递null

对于布尔深度,如果false只列出子页面,如果true将列出给定页面的所有后代。

因此,问题中的代码可以修改为
Iterator<Page> rootPageIterator = rootPage.listChildren(null, true);

Iterator<Page> rootPageIterator = rootPage.listChildren(new PageFilter(), true);

相关内容

  • 没有找到相关文章

最新更新