liferay - Liferay Asset Publisher ADT 获取图片 URL
问题描述
我在 Liferay 7.2 中创建了一个具有图像选择器的结构。当我将以下内容添加到 ADT 以获取图像时
<#assign
artImg = saxReaderUtil.createXPath("dynamic-element[@name='Imagean48']")
/>
它不返回 URL,而是返回一个列表。
<img src=" {" classpk":1923313,"groupid":"1912582","name":"spc_desktop_welcome_image3_benefits.jpg","alt":"man="" in="" suit","title":"spc_desktop_welcome_image3_benefits.jpg","type":"document","uuid":"db10a245-881c-d09c-ab64-4aeebc1581f0","fileentryid":"1923313","resourceprimkey":"2474428"}="" "="">
是否可以仅获取图像的 URL?
解决方案
评估artImg
为哈希
<#assign
artImg = saxReaderUtil.createXPath("dynamic-element[@name='Imagean48']")
artImgHash = artImg?eval
/>
获取artImg
DLFileEntry,然后获取其URL
<#assign
dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")
dlURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper")
artImgDLFile = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(artImgHash.uuid, artImgHash.grouId)
artImgURL = dlURLHelper.getImagePreviewURL(artImgDLFile, themeDisplay)
/>
然后你可以在你的img
<img src="${artImgURL}"/>
注意:我已经复制了您的artImg = saxReaderUtil.createXPath...
线路,但我认为它不起作用。正确的方法是这样的:
<#assign
journal = entry.getAssetRenderer().getArticle()
rootElement = saxReaderUtil.read(journal.content).getRootElement()
artImg = rootElement.selectSingleNode("dynamic-element[@name='Imagean48']")
/>
推荐阅读
- android - 使用 OpenGLES 绘制圆形笔划
- neo4j - 如何在单个查询中更新一组节点上的序数属性?
- javascript - 关闭服务器后,Node-Cron 如何跟踪时间?
- android - 有没有办法通过一项活动发送意图?
- java - OpenJDK 安全配置中需要进行不明更改以允许 IcedTea-Web 使用库
- javascript - JSON 解码返回 JSON 字符串而不是数组或对象
- php - 会话可以参与包含功能吗?
- javascript - 应用更新后 xxx.chunk.js 返回 422 (Unprocessable Entity)
- javascript - 在 javascript 中解析服务器端文本文件的日期,然后在文件的另一行显示文本
- asp.net-core - .Net Core SignalR 服务器到服务器重新连接