Liferay asset publisher 入口变量在 adt 中赋值给自身

Liferay asset publisher entry variable assignment to itself in adt

我正在使用 Liferay 7,通过查看资产发布者的默认广告,我在 "Rich Summary" 广告中看到以下代码部分

<#list entries as entry>
  <#assign
    entry = entry
    assetRenderer = entry.getAssetRenderer()
    entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale))
    viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry)
  />
  ...

(见 GitHub https://github.com/liferay/liferay-portal/blob/master/portal-web/test/functional/com/liferay/portalweb/dependencies/adt_asset_publisher_rich_summary.ftl

entry = entry 作业有什么理由吗?

在我看来,这不是必需的,我是否可能遗漏了一些在 freemarker 中可能需要这样的作业的原因?

[编辑]

考虑到即使在 list 循环之外也会以这种方式定义 entry,为什么要这样做?有必要吗?

在这个模板中实际上没有更多的引用这个变量。那么在创建新的自定义广告时是否需要此分配?

作为#assign creates/writes当前模板命名空间中的变量,而#list在循环范围内创建变量(更具体,更窄的范围),该语句将 entity 从循环范围复制到更广泛的模板命名空间范围。我不知道该模板是否真的需要它;在 #list 之外的那个(或 #include/#imported-d)模板中查找对 entry 的引用。引用的部分不需要它。

这是因为在该文件底部的循环之外使用了宏。