提问者:小点点

吊索资源vs节点


我很难理解为什么在sling中使用资源而不是节点。所以假设我有一些简单的访问节点,如下所示:

NodeIterator headerNode = currentNode.getNodes();
//loop through and do something with the nodes.

你将如何在资源而不是节点中工作。我听说你通常应该在sling而不是节点中工作资源。但是为什么?我真的不明白这样做有什么好处。我想我也很难掌握什么是资源。我知道有留档,但是我找不到任何关于如何使用它们的代码示例。


共1个答案

匿名用户

要查看的主要留档是http://sling.apache.org/documentation/the-sling-engine/resources.html它解释了资源概念以及如何使用它们。

API与API的JCR节点有些不同,但使用了类似的概念。使用Resources绝对更简单的一件事是访问属性值,例如,当您在ValueMap中获取它们时,缺少的属性不会引发异常。

上面的文档应该解释主要模式,简而言之,它们是:

  • 您从Sling Request或使用ResourceResolver服务获得资源
  • 资源可以适应ValueMap以访问其属性
  • 如果您需要切换到JCR,资源可以适应节点API
  • 资源. list儿童(…)类似于Node.getNodes()
  • Resource. getResourceResolver()提供了一个ResourceResolver,它可以通过搜索或路径访问其他资源。

Resource的存在是为了抽象内容存储,使在Sling中使用JCR以外的其他后端成为可能,并统一Sling对其内部使用的数据和内容的视图。

对于应用程序级编程,在我看来JCRAPI非常好,我不会仅仅为了它而使用Resource。但是在某些情况下,ResourceAPI使事情变得更简单。