如何解决如何在aem中获取子页面和孙子页面的页面路径和标题
有人可以帮忙吗?
我有一个根页面的路径,我想检索根页面的所有子页面以及根页面的孙子和孙子。我的结构是这样的
rootPage
|
|
|---------childPage
|
|
|---------grandChildPage
解决方法
我认为这应该可行。
public static void visitRecursively(Node node,Session currentSession) {
try{
NodeIterator list = node.getNodes();
while(list.hasNext()) {
Node childNode = list.nextNode();
// Verify child node for cqPage type
if((childNode.hasProperty("jcr:primaryType")) && (childNode.getProperty("jcr:primaryType").getValue().getString()).equals("cq:Page") ){
Node jcrNode = childNode.getNode("jcr:content");
// Iterate some of the page properties
String articleTitle="";String jcrDesc="";String jcrTitle="";String keywords="";
if(jcrNode.hasProperty("articleTitle")){
articleTitle = jcrNode.getProperty("articleTitle").getString();
log.info("articleTitle--->"+articleTitle);
}
if(jcrNode.hasProperty("jcr:description")){
jcrDesc = jcrNode.getProperty("jcr:description").getString();
log.info("jcr:description--->"+jcrDesc);
}
if(jcrNode.hasProperty("jcr:title")){
jcrTitle = jcrNode.getProperty("jcr:title").getString();
log.info("jcr:title--->"+jcrTitle);
}
if(jcrNode.hasProperty("keywords")){
keywords = jcrNode.getProperty("keywords").getString();
log.info("keywords--->"+keywords);
}
String pagePropertiesString = "articleTitle--->"+articleTitle + "jcr:description--->"+jcrDesc+"jcr:title--->"+jcrTitle + "keywords--->"+keywords ;
log.info("Page Properties :---> Node "+ childNode.getName()+ "Properties : " + pagePropertiesString );
}
visitRecursively(childNode,currentSession);
}
} catch (RepositoryException rpe){
log.info("Exception in recursive listing:");
}
,
您可以使用 SlingQuery 轻松做到这一点
Worksheet.SelectionChange
来源:https://sling.apache.org/documentation/bundles/sling-query.html
或使用普通的 SQL2 查询
final List<Resource> descendantPages = $(rootPage).("cq:Page").asList();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。