ディレクトリ/ content/abcに存在するすべてのページを表示したいAEM:すべてのページを固定ディレクトリ(JSP)にリストする方法
私はこのディレクトリに正確に存在するページのみを気にします(深いサブフォルダ、子ページなどはありません)。
誰かがこれを達成するために使用するJSPコードを私に提供するのに役立つでしょうか?
ありがとうございます!
ディレクトリ/ content/abcに存在するすべてのページを表示したいAEM:すべてのページを固定ディレクトリ(JSP)にリストする方法
私はこのディレクトリに正確に存在するページのみを気にします(深いサブフォルダ、子ページなどはありません)。
誰かがこれを達成するために使用するJSPコードを私に提供するのに役立つでしょうか?
ありがとうございます!
ResourceクラスのlistChildren()
メソッドを使用して、そのディレクトリ下のすべてのリソースをリストします。それらを繰り返し、リソースがページであるかどうかを確認します。
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
}
}
このディレクトリもページですか? もしそうなら、あなたはそれとのページAPIを使用することができます#listChildren()、の線に沿って何か:ディレクトリは、あなたがrakhi4110の答えと良いことがありますページでない場合
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
}
[削除] ........ – user3444873
いいえ。あなたのコードは間違っています。これは、ページだけでなく、すべての子リソースをリストします。一方、質問には、ディレクトリに存在するページだけが必要であることが記載されています。 – rakhi4110
しかし、/ content/abcはページではないので、Iteratorコールは失敗します。 –
user3444873