Liferay 应用程序显示模板 - 获取速度变量

标签 liferay freemarker

我正在 Freemarker 中的 Liferay (6.2 GA5) 中为 Assets 发布商编写应用程序显示模板,我想显示作者和创建日期。不久前,我需要模板使用相同的变量,并且找到了匹配的 Velocity 变量: $reserved-article-author-name & $reserved-article-create-date.data

为了在 FreeMarker 中使用 Velocity 变量,我这样调用它们:${.vars['reserved-article-author-name'].data}

在我的模板中,它工作正常,在我的 ADT 中,它抛出一个错误:

Expression .vars['reserved-article-author-name'] is undefined

您如何设法让这些变量在我的 ADT 中发挥作用,或者是否有其他方法来获取此信息?

最佳答案

这些“保留文章”变量仅在处理 Web 内容模板时设置。

使用 ADT,您可以更细粒度地访问显示的资源,但必须使用不同的访问方式,因为这些保留的变量不可用。 Assets 具有您可以访问的一组通用元数据(名称、日期、标题等)。对于您的示例,代码为:

<#if entries?has_content>
    <#list entries as curEntry>
        Title: ${curEntry.getTitle(locale)}
        Create Date: ${curEntry.createDate?date}
        Author: ${curEntry.userName}
    </#list>
</#if>

看看这个 Rich Summary for Asset Publisher了解如何访问特定 Assets 类型(博客、维基等)的元数据。

关于Liferay 应用程序显示模板 - 获取速度变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34769787/

相关文章:

javascript - 如何在 JavaScript 中获取 Liferay 用户电子邮件地址?

tomcat - Liferay 门户托管在 n ubuntu 服务器上

Freemarker - 将值添加到哈希中

java - FreeMarker - 读取包含的文件时出错 "./common/header.txt":

java - 如何使资源包与现有 Freemarker 模板配合使用?

javascript - jQuery.get() 的奇怪问题

database - 将数据库从 Hypersonic 更改为 MySQL 后,Liferay 不保存设置

workflow - 带 Activiti 插件的 Liferay 工作流程

Freemarker:包含和导入之间的区别?

java - freemarker 中的嵌套变量赋值