0

DAM にアセットがあります。resource次のコードのように参照します。

    TagManager tagManager = resourceResolver.adaptTo(TagManager.class);
    Tag[] tags = tagManager.getTags(resource);
    log.warn(tags.length + " tags found for resource:" + resource.getPath());

これにより、アセットのタグが 0 であることがログに記録されます。しかし、DAM 管理画面でこのアセットを見ると、複数のタグがあることがわかります。

ここのドキュメントを使用しています: https://docs.adobe.com/docs/en/cq/5-6-1/developing/tagging.html。私がこれを正しく行っているかどうかは誰にもわかりませんか?

4

1 に答える 1

1

タグは、DAM アセットのメタデータ ノードに保存されます(AEM ドキュメントのタグ付け可能なコンテンツを参照してください)。したがって、アセット リソースからタグを直接取得することはできません。

代わりに、以下に示すように、アセットのメタデータからタグを読み取ることができます。

TagManager tagManager = resourceResolver.adaptTo(TagManager.class);
Asset asset = resource.adaptTo(Asset.class);
Object[] tags = asset.getMetaData("cq:tags");

for (Object obj : tags) {
     Tag tag = tagManager.resolve(obj.toString());
    //Do something with your tag.
}
于 2016-03-07T18:12:18.567 に答える