Liferay 7 - 列出FreeMarker模板中的所有博客

时间:2018-01-04 15:38:38

标签: java liferay freemarker liferay-7

我使用的是Liferay 7 GA5,我需要为Web内容创建一个模板来打印所有博客,以便在网站页脚中插入。

研究,最好的解决方案是:

<#if entries?has_content>
    <#list entries as cur_entry>
        ${cur_entry.getUrlTitle()}<br>
    </#list>
</#if>

但变量条目不存在,FreeMarker返回给我错误&#34;以下评估为null或丢失...&#34;

如何获取所有博客并打印其值(图片,标题,简短说明,链接......)?

谢谢

2 个答案:

答案 0 :(得分:0)

问题是“网页内容打印所有博客” 使用模板时,它们会根据模板的类型插入上下文中。当您使用Web内容时,条目变量将不存在。

您可以继续使用Liferay的服务手动获取您的条目,这些服务已填充(如果已启用)。

启用服务定位器后,您将寻找此服务:

  

https://docs.liferay.com/portal/7.0/javadocs/portal-kernel/com/liferay/blogs/kernel/service/package-summary.html

从那里您可以使用该服务获取您需要的条目,也许您需要可用的计数或其他一些标准。只要您知道需要将条目作为列表获取,您就可以使用freemarker代码。

答案 1 :(得分:0)

我也有同样的要求。

我使用资产出版商实现了这一目标,这是最好,最简单的方式。

  1. 拖动资产发布者并将其配置为仅显示博客
  2. 为博客创建ADT
  3. 在ADT中编写代码以显示图片,标题,简短描述,链接..