如何在 Liferay Freemarker 中获取显示页面的资产条目

发布于 2025-01-09 19:31:18 字数 55 浏览 2 评论 0原文

如何在显示页面内的 Freemarker(片段、小部件模板、Web 内容模板等)中获取资产条目。

How can I get the Asset Entry in a Freemarker (a Fragment, Widget Template, Web Content Template, etc) inside a Display Page.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心意如水 2025-01-16 19:31:18

您可以使用 Request 全局变量中的 INFO_ITEM_DETAILS 对象来获取资产 classNameclassPK,然后恢复您的使用 AssetEntryLocalService 显示页面资源

<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>

<#if Request.INFO_ITEM_DETAILS??>
  <#assign 
    info_item_reference = Request.INFO_ITEM_DETAILS.getInfoItemReference()
    
    className = info_item_reference.getClassName()
    classPK = info_item_reference.getClassPK()
    
    asset = assetEntryLocalService.getEntry(className, classPK)
  />
  ${asset}
</#if>

确保使用 Freemarker 的 替代(方括号)语法
创建 Fragment 时

You can use INFO_ITEM_DETAILS object from Request global variable, to get the Asset className and classPK, and then recover your Display Page Asset with AssetEntryLocalService

<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>

<#if Request.INFO_ITEM_DETAILS??>
  <#assign 
    info_item_reference = Request.INFO_ITEM_DETAILS.getInfoItemReference()
    
    className = info_item_reference.getClassName()
    classPK = info_item_reference.getClassPK()
    
    asset = assetEntryLocalService.getEntry(className, classPK)
  />
  ${asset}
</#if>

make sure to use Freemarker's alternative (square bracket) syntax
when creating a Fragment

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文