上述结构父级的路径:pdf文件夹,是-> /content/dam/example/corporate/pdf
,pdf文件夹的值为,jcr:primarytype
其他 Sling:OrderedFolder
两个文件夹'2013''2014'也是如此......
如果父“pdf”是页面类型,我确切地知道如何迭代页面结构并使用 jcr node api 检索子节点的属性信息。
但不幸的是'pdf'是一个有序文件夹类型......
我现在需要的是,遍历结构并检索所有 PDF 路径并存储到一个ArrayList
,例如,'2013exampleOne.pdf' 节点的/content/dam/example/corporate/pdf/2013exampleOne.pdf
路径是,'2014examplePDFTwo.pdf' 的路径是/content/dam/example/corporate/pdf/2014examplePDFTwo.pdf
......等等。 . (此列表可能会为应用程序的其他部分提供服务以稍后下载 pdf,但这与我当前的问题无关......)
这是我自己的尝试代码(请注意,这只是我的 servlet 的一部分,):
@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:请提供代码示例以帮助,干杯