Magnolia,JCR,按自定义属性值排序节点顺序

时间:2017-07-31 16:33:07

标签: java sorting aem jcr magnolia

例如,我有一个节点ref 29949,它具有如下属性: enter image description here

所以它的positionIndex为1,这是一个自定义属性。 我当前的节点是完全无序的,如下所示:

enter image description here

我希望通过此属性positionIndex对节点进行比较并将其排序为升序,因此该节点29949将位于44440下,因为44440具有值positionIndex 0.任何人都知道如何做到这一点?任何代码示例都会很好。
干杯

1 个答案:

答案 0 :(得分:0)

首先,你应该为自己抓一个会话(也可以注入)

Context context = MgnlContext.getInstance();
Session session = context.getJcrSession("choiceOfWorkspace");

// Must be the parent of the nodes to be compared.

Node rootNode = session.getRootNode();
NodeIterator iterator = rootNode.getNodes();

// just do an iteration over the iterator

while(iterator.hasNext()){
Node nextNode = iterator.nextNode();
property = nextNode.getProperty("positionIndex");
// do any sorting algorithm here
}

希望这有帮助

干杯,