Java Content Repository API 简介
2010-03-19 00:00:00 来源:WEB开发网默认情况下,Jackrabbit 的节点被设置为 nt:unstructured。注意,“rose” 的分类属性是多值的。上面代码段的最后一行代码将保存会话。添加和设置节点以及节点属性只能修改临时的会话存储层。要将这些变化保持到仓库中,则必须用 session.save() 保存会话。可以在目标节点上调用 Node.remove() 来删除节点。
存取内容
JSR-170 提供了两种存取内容的方法:遍历 存取和直接 存取。遍历存取包括用相对路径在内容树中进行遍历,直接存取允许用绝对路径直接跳到节点,如果节点是可以引用的,则用 UUID 直接跳到节点。因为两种存取之间存在相似性,所以我在这篇文章只侧重于遍历存取。
从任何 Node 对象及其方法 Node.getNode()、Node.getProperty() 都可以进行遍历存取。通过使用 JCRWiki 拓扑,可以用以下代码从根节点获得 encyclopedia 节点:
Node encyclopedia = rn.getNode("wiki:encyclopedia");
可以进一步通过遍历得到属性。例如,在根节点向下的 “rose” 百科全书节点条目中,假设以前知道 JCRWiki 拓扑,那么可以像这样通过遍历得到属性:
String roseTitle = rn.getProperty
("wiki:encyclopedia/wiki:entry[1]/wiki:title").getString()
请注意,您是通过 wiki:entry[1] 进行遍历的。当有同名的多个同级节点时,可以用下标区分出想要的同级节点。在 JCR 中,对同级节点的索引是从 1 而不是 0 开始的。而且,索引的顺序是在通过 Node.getNodes() 得到的迭代器中返回的节点的顺序。
然后,可以通过获取 NodeIterator(它返回特点节点的子节点)来浏览所有 JCRWiki 条目,如清单 9 所示:
Tags:Java Content Repository
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接