我试图在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():
有没有办法从自定义元数据属性中获取值?
答案 0 :(得分:1)
最后的资产是简单的节点,所以要获得一些属性,你可以做这样的事情(取决于变量fileReference
的实际路径):
Resource metadataResource = rs.getChild("jcr:content/metadata");
ValueMap properties = ResourceUtil.getValueMap(metadataResource);
customTitle = properties.get("mine.title", "defaultValue")
答案 1 :(得分:0)
" DC:标题"附带一个注册名称空间" dc" (都柏林核心)而#34; mine.title"没有。
title = asset.getMetadataValue("dc:title").toString();
给你正确价值的原因是customTitle = asset.getMetadataValue("mine.title").toString()
您可以通过多种方式解决此问题。
您可以检索" mine.title"的值就像亚历克斯所描述的那样。
资源rs = getResourceResolver()。getResource(fileReference +" / jcr:content / metadata"); ValueMap damAssetValueMap = damResource.adaptTo(ValueMap.class);
String shortName = damAssetValueMap.get(" shortName",String.class);
注册一个新的命名空间并定义选项(在您的情况下,它的"我的")。
查看"/libs/dam/nodetypes"
和"/libs/dam/options/metadata"
可能会有所帮助。
[0]检查"/libs/dam/options/metadata"