2016-08-06 9 views
2

ディレクトリ/ content/abcに存在するすべてのページを表示したいAEM:すべてのページを固定ディレクトリ(JSP)にリストする方法

私はこのディレクトリに正確に存在するページのみを気にします(深いサブフォルダ、子ページなどはありません)。

誰かがこれを達成するために使用するJSPコードを私に提供するのに役立つでしょうか?

ありがとうございます!

答えて

1

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

[削除] ........ – user3444873

+0

いいえ。あなたのコードは間違っています。これは、ページだけでなく、すべての子リソースをリストします。一方、質問には、ディレクトリに存在するページだけが必要であることが記載されています。 – rakhi4110

+0

しかし、/ content/abcはページではないので、Iterator コールは失敗します。 – user3444873

0

このディレクトリもページですか? もしそうなら、あなたはそれとのページ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 
} 

関連する問題