如何在LiferayPortal中使用Freemarker显示Web内容的纯HTML

时间:2019-07-04 12:58:03

标签: liferay freemarker liferay-7

在Liferay Portal 7.2中,我具有基本Web内容元素的动态数据列表。 对于此列表中的每个Web内容,我要显示在Web内容本身中定义的自定义HTML模板。

我尝试过

<#assign records = ddlDisplayTemplateHelper.getRecords(reserved_record_set_id)>
<#if records?has_content>
    <#list records as cur_record>
        ${ddlDisplayTemplateHelper.renderRecordFieldValue
                    (cur_record.getDDMFormFieldValues("WebContent")?first, locale)}
    </#list>
</#if>

,但仅显示WebContents的名称。

我期望的代码是这样的

<#assign records = ddlDisplayTemplateHelper.getRecords(reserved_record_set_id)>
<#if records?has_content>
    <#list records as cur_record>
        ${cur_record.getTemplateHTML()}
    </#list>
</#if>

其中getTemplateHTML()是返回Web内容的纯HTML的方法。

我该怎么做? 谢谢

编辑:

数据列表是Basic_Web_Content数据定义的列表。

这是数据列表-> Data_List_Image

这是Basic_Web_Content定义-> Data_Definition_Image

编辑2 .: 我还尝试使用此代码打印所有WebContents的每个字段,而不仅仅是打印第一个字段(使用?first)

<#assign records = ddlDisplayTemplateHelper.getRecords(reserved_record_set_id)>
<#if records?has_content>
    <#list records as cur_record>
        <#if cur_record.getDDMFormFieldValues("WebContent")?has_content>
            <#list cur_record.getDDMFormFieldValues("WebContent") as cur_field>
                <#if cur_field?has_content>
                    ${ddlDisplayTemplateHelper.renderRecordFieldValue(cur_field, locale)}<br>
                </#if>
            </#list>
        </#if>
    </#list>
</#if>

但是,这再次只列出了Web目录的名称。 似乎Web Content类型的属性仅保存其名称。

0 个答案:

没有答案