[英]How to get values custom metadata properties
我正在嘗試獲取DAM中資產的元數據。 但是,對於前面沒有“ dc:”的屬性,元數據似乎返回為空。
Resource rs = getResourceResolver().getResource(fileReference);
Asset asset = rs.adaptTo(Asset.class);
//this works
title = asset.getMetadataValue("dc:title").toString();
//this does not work.
//I have ensured that "mine.title" is a property and has string value assigned to it.
customTitle = asset.getMetadataValue("mine.title").toString():
//this does not work either
customTitle = asset.getMetadata("mine.title").toString():
有沒有辦法從自定義元數據屬性獲取值?
最后的資產是簡單的節點,因此要獲得某些屬性,您可以執行以下操作(取決於變量fileReference
實際路徑):
Resource metadataResource = rs.getChild("jcr:content/metadata");
ValueMap properties = ResourceUtil.getValueMap(metadataResource);
customTitle = properties.get("mine.title", "defaultValue")
“ dc:title”帶有注冊的名稱空間“ dc”(Dublin Core),而“ mine.title”則沒有。
這就是title = asset.getMetadataValue("dc:title").toString();
給您比customTitle = asset.getMetadataValue("mine.title").toString()
合適的值
您可以通過多種方式解決此問題。
您可以按照Alex所述的方式檢索“ mine.title”的值。
資源rs = getResourceResolver()。getResource(fileReference +“ / jcr:content / metadata”); ValueMap damAssetValueMap = damResource.adaptTo(ValueMap.class);
字符串shortName = damAssetValueMap.get(“ shortName”,String.class);
注冊一個新的名稱空間並定義選項(在您的情況下為“我的”)。 看看"/libs/dam/nodetypes"
和"/libs/dam/options/metadata"
可能會有所幫助。
[0]檢查"/libs/dam/options/metadata"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.