我正在与迭代器一起工作以列出并遍历子节点,而我得到了这种异常行为,其中迭代器每次都以不同的顺序列出节点。我需要遍历crx / de中存在的节点。有没有办法控制上市顺序!
我想您正在使用Oak。
我记得阅读过有关OAK中节点顺序的内容:
对于Apache Oak,这已经改变了。对于Oak节点,除非其父节点的节点类型支持排序,否则不对节点进行排序。
为了阐明
sling:folder
(不需要订购)和sling:orderedFolder
(需要订购)之间的差异,我做了一个小测试。我编写了一个小型基准测试,以创建5000个节点,然后添加更多节点,进行随机读取,然后将其删除。对于每个操作,将创建或删除单个节点,然后单击save()
。
这里是链接:https://cqdump.wordpress.com/2015/07/09/1000-nodes-per-folder-and-oak-orderable-nodes/
因此,您需要具有主类型为sling:OrderedFolder
的父节点,这基本上是节点的顺序。
请使用Sling API进行迭代。这就是您应该在AEM中构建事物的方式。