Liferay资产发布者条目变量在adt中分配给自身

Liferay资产发布者条目变量在adt中分配给自身,liferay,freemarker,liferay-7,Liferay,Freemarker,Liferay 7,我使用的是Liferay 7,通过查看asset publisher的默认adt,我在丰富的摘要adt中看到了代码的以下部分 <#list entries as entry> <#assign entry = entry assetRenderer = entry.getAssetRenderer() entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) viewURL =

我使用的是Liferay 7,通过查看asset publisher的默认adt,我在丰富的摘要adt中看到了代码的以下部分

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

是否有任何理由进行entry=entry赋值

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

[编辑]

考虑到即使在列表循环之外也会定义这种方式的条目,为什么要这样做?有必要吗


在这个模板中,实际上没有对这个变量的更多引用。因此,在创建新的自定义adt时是否需要此赋值?

因为assign在当前模板的命名空间中创建/写入变量,而list在循环的作用域中创建变量更具体、更窄的作用域,该语句将实体从循环作用域复制到更宽的模板命名空间作用域。如果模板中真的需要它,我不知道;查找对该条目的引用或列表之外的include/imported-d模板。引用的部分不需要它

这是由于在该文件底部的循环之外使用了宏