2010-11-12 82 views
4

我想改變一個JCR節點的名稱,但我不知道如何?有人有你的提示嗎?如何更改JCR節點的名稱?

非常感謝。

+0

你試圖改變節點名稱「屬性」或節點的「類型」的名字? – anirvan 2010-11-12 13:21:18

回答

10

Jackrabbit Wiki提供了一個例子:

void rename(Node node, String newName) throws RepositoryException 
    { 
     node.getSession().move(node.getPath(), node.getParent().getPath() + "/" + newName); 
     // Don't forget - not necessarily here at this place: 
     // node.getSession().save(); 
    } 
+1

請注意,重命名方法是* not * JCR的一部分。它是Jackrabbit API的一部分。 如果您想嚴格遵守JCR,則需要使用move方法將節點移動到新名稱。另外,如果父節點是可訂購的,則移動後必須將移動的節點重新排列到其先前的位置。 – michid 2010-11-16 11:01:31

+0

維基仍然保留該代碼作爲今天的日期,但使用JackRabbit的最新版本測試該代碼將引發異常。需要刪除多餘的「/」才能使其工作。 – 2014-01-08 16:37:03