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)
/>
...
做 entry = entry
作业有什么理由吗?
在我看来,这不是必需的,我是否可能遗漏了一些在 freemarker 中可能需要这样的作业的原因?
[编辑]
考虑到即使在 list
循环之外也会以这种方式定义 entry
,为什么要这样做?有必要吗?
在这个模板中实际上没有更多的引用这个变量。那么在创建新的自定义广告时是否需要此分配?
作为#assign
creates/writes当前模板命名空间中的变量,而#list
在循环范围内创建变量(更具体,更窄的范围),该语句将 entity
从循环范围复制到更广泛的模板命名空间范围。我不知道该模板是否真的需要它;在 #list
之外的那个(或 #include
/#imported
-d)模板中查找对 entry
的引用。引用的部分不需要它。
这是因为在该文件底部的循环之外使用了宏。
我正在使用 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)
/>
...
做 entry = entry
作业有什么理由吗?
在我看来,这不是必需的,我是否可能遗漏了一些在 freemarker 中可能需要这样的作业的原因?
[编辑]
考虑到即使在 list
循环之外也会以这种方式定义 entry
,为什么要这样做?有必要吗?
在这个模板中实际上没有更多的引用这个变量。那么在创建新的自定义广告时是否需要此分配?
作为#assign
creates/writes当前模板命名空间中的变量,而#list
在循环范围内创建变量(更具体,更窄的范围),该语句将 entity
从循环范围复制到更广泛的模板命名空间范围。我不知道该模板是否真的需要它;在 #list
之外的那个(或 #include
/#imported
-d)模板中查找对 entry
的引用。引用的部分不需要它。
这是因为在该文件底部的循环之外使用了宏。