2016-03-07 52 views
0

我在我的DAM中擁有資產。我引用它作爲resource用下面的代碼:找不到DAM資產的標籤

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。有誰知道我是否這樣做對嗎?

回答

1

標記存儲在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. 
}