cq5 - How to get url of all child,grand child pages using root path? -
i have path of root page , want retrieve child pages of root page , grandchild , grand grand child of root page. structure this
rootpage | | |---------childpage | | |---------grandchildpage | | | |----------------------grandgrandchildpages
so want path of these pages. how can this? i'm using this
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); }
but provides me child pages of root page , if use rootpage.haschild() have pass string can't because don't name of pages. there method returns boolean value whether page has child pages or not. want list of pages inside root page include grandchild grandgrandchild of root page.
can ?
from aem 5.6 onwards, can use listchildren(filter<page> filter, boolean deep)
method available in com.day.cq.wcm.api.page
interface.
this accept pagefilter , boolean value arguments.
the pagefilter can used, if want filter invalid , hidden pages. if want pages listed pass null
param.
for boolean deep, if false
lists child pages, , if true
list descendants of given page.
hence, code in question can modified either
iterator<page> rootpageiterator = rootpage.listchildren(null, true);
or
iterator<page> rootpageiterator = rootpage.listchildren(new pagefilter(), true);
Comments
Post a Comment