WEB开发网
开发学院软件开发Java Java Content Repository API 简介 阅读

Java Content Repository API 简介

 2010-03-19 00:00:00 来源:WEB开发网   
核心提示: 默认情况下,Jackrabbit 的节点被设置为 nt:unstructured,Java Content Repository API 简介(10),注意,“rose” 的分类属性是多值的,索引的顺序是在通过 Node.getNodes() 得到的迭代器中返回的节点的顺

默认情况下,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 所示:

上一页  5 6 7 8 9 10 

Tags:Java Content Repository

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接