5

Sling でノードの代わりにリソースを使用する理由が理解できません。したがって、以下のような単純なノードへのアクセスがあるとします。

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

ノードではなくリソースでどのように作業しますか? 通常、ノードではなくスリングのリソースで作業する必要があると聞きました。しかし、なぜ?これが何の利益になるのか、さっぱりわかりません。私もリソースとは何かを把握するのに苦労していると思います。ドキュメントがあることは知っていますが、それらの使用方法に関するコード サンプルが見つかりません。

4

1 に答える 1

10

主なドキュメントはhttp://sling.apache.org/documentation/the-sling-engine/resources.htmlで、リソースの概念とその使用方法について説明しています。

この API は JCR ノード API とは多少異なりますが、同様の概念を使用しています。リソースで間違いなく簡単なことの 1 つは、プロパティ値にアクセスすることです。たとえば、プロパティ値を ValueMap で取得し、欠落しているプロパティが例外をスローしないためです。

上記のドキュメントは、主なパターンを説明する必要があります。つまり、次のとおりです。

  • Sling Request から、または ResourceResolver サービスを使用してリソースを取得します
  • Resource を ValueMap に適合させて、そのプロパティにアクセスできます
  • JCR API に切り替える必要がある場合は、リソースをノードに適応させることができます
  • Resource.listChildren(...) は Node.getNodes() に似ています
  • Resource.getResourceResolver() は、検索またはパスによって他のリソースにアクセスできるようにする ResourceResolver を提供します。

リソースは、コンテンツ ストレージを抽象化し、Sling で JCR 以外のバックエンドを使用できるようにし、内部で使用されるデータとコンテンツに対する Sling のビューを統一するために存在します。

アプリケーション レベルのプログラミングでは、JCR API は非常に優れていると思います。そのためだけに Resource を使用することはありません。ただし、リソース API を使用すると作業が簡単になる場合もあります。

于 2013-05-16T08:34:30.603 に答える