为动态数据列表创建 Velocity 模板 (Liferay 6.2)

Creating a Velocity template for Dynamic Data List (Liferay 6.2)

我目前正在使用 liferay 6.2,但在为动态数据列表创建显示模板时遇到问题。我正在尝试遵循本指南:

https://dev.liferay.com/discover/portal/-/knowledge_base/6-2/make-it-pretty-creating-custom-displays#display-templates

但是 FreeMarker 示例不起作用。我正在尝试在 Velocity 中创建一个模板(因为我的知识比 FreeMarker 多):

到目前为止我的代码是:

<h1>Title</h1>

#set($DDLRecordLocalService = $serviceLocator.findService("com.liferay.portlet.dynamicdatalists.service.DDLRecordLocalService"))
#set ($records = $DDLRecordLocalService.getRecords("TitoloDeEmprego"))

#if(!$records.isEmpty())
    <h1>$records.getFieldValue("TitoloDeEmprego")</h1>
#end

但我无法从 $records

获得任何信息

首先,您必须允许您的 Freemarker/Velocity 模板访问 serviceLocator 变量。为此,您需要将以下行放入 portal-ext.properties:

# Freemarker template settings
freemarker.engine.restricted.variables=

我认为这是原因,但如果您有任何其他问题,这是适合我的简单 Freemarker DDL 显示模板:

<#assign DDLRecordLocalService = serviceLocator.findService("com.liferay.portlet.dynamicdatalists.service.DDLRecordLocalService")>
<#assign records = DDLRecordLocalService.getRecords(reserved_record_set_id)>

<#if records?has_content>
    <ul>
        <#list records as cur_record>
            <li>
                <a href="${ddmUtil.getDisplayFieldValue(themeDisplay, cur_record.getFieldValue("someLinkFieldName", locale), cur_record.getFieldType("someLinkFieldName"))}">
                    <img src="${ddmUtil.getDisplayFieldValue(themeDisplay, cur_record.getFieldValue("someImageFieldName", locale), cur_record.getFieldType("someImageFieldName"))}" />
                </a>
            </li>
        </#list>
    </ul>
</#if>