上記の構造の親のパス: pdf フォルダーは -> /content/dam/example/corporate/pdf
であり、pdf フォルダーの値は でjcr:primarytype
あり Sling:OrderedFolder
、他の 2 つのフォルダー '2013' '2014'... も同様です。
親の 'pdf' がページ タイプの場合、ページ構造を反復処理し、jcr ノード API を使用して子ノードのプロパティ情報を取得する方法を正確に知っています。
残念ながら、「pdf」は順序付きフォルダータイプです...
今必要なのは、構造を反復処理してすべての PDF パスを取得しArrayList
、たとえば、「2013exampleOne.pdf」ノードの/content/dam/example/corporate/pdf/2013exampleOne.pdf
パスは 、「2014examplePDFTwo.pdf」のパスは/content/dam/example/corporate/pdf/2014examplePDFTwo.pdf
... など.. . (このリストは後で PDF をダウンロードするためにアプリケーションの他の部分をサーバー化する場合がありますが、これは私の現在の質問とは関係ありません...)
これは、試行用の私自身のコードです (注意してください、これは私のサーブレットの一部にすぎません)。
@Override
protected void doGet(final SlingHttpServletRequest request,
final SlingHttpServletResponse response) throws ServletException,
IOException {
....//some more code
....
....
....
final ResourceResolver resourceResolver = request.getResourceResolver();
Node pdfJcrNode = resourceResolver.resolve("/content/dam/example/corporate/pdf").adaptTo(Node.class);
NodeIterator yearChildrenNodes;
try {
yearChildrenNodes = pdfJcrNode.getNodes();
while(yearChildrenNodes.hasNext()){
Node yearItemNode = yearChildrenNodes.nextNode();
while(yearItemNode.getNodes().hasNext()){
String pdfNodeAssetString = yearItemNode.getNodes().nextNode().getProperty("jcr:primaryType").getString();
if(pdfNodeAssetString.equals("dam:Asset")){
pdfPathList.add(yearItemNode.getNodes().nextNode().getPath().toString());
}
}
}
} catch (RepositoryException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
....
....
....
....//some more code
}
繰り返しますが、親フォルダー「pdf」のパスは/content/dam/example/corporate/pdf
私を助けるための提案はありますか?ありがとう
ps: 参考になるコード例を提供してください、乾杯