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

How can I get the Display Page's Asset Entry in a Liferay Freemarker

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

您可以使用 Request 全局变量中的 INFO_ITEM_DETAILS 对象,获取资产 classNameclassPK,然后使用 [=15] 恢复您​​的显示页面资产=]

<#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