找不到 DAM 资产的标签
Can't find the tags for a DAM Asset
我的 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。有谁知道我这样做对吗?
标签存储在 DAM 资产的元数据节点中(请参阅 AEM 文档中的 Taggable Content)。因此,您将无法直接从资产资源中获取标签。
相反,您可以从资产的元数据中读取标签,如下所示。
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.
}
我的 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。有谁知道我这样做对吗?
标签存储在 DAM 资产的元数据节点中(请参阅 AEM 文档中的 Taggable Content)。因此,您将无法直接从资产资源中获取标签。
相反,您可以从资产的元数据中读取标签,如下所示。
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.
}