Liferay 7 Freemarker模板 - 获取文章类别

时间:2016-07-01 08:29:01

标签: html templates liferay freemarker categories

嗨Liferay'ers,

我正在尝试使用Freemarker模板获取journalArticle的类别。

我试过这段代码:

   <#assign journalArticleId = .vars['reserved-article-id'].data>
<#assign journalArticleResourceLocalServiceUtil = staticUtil["com.liferay.portlet.journal.service.JournalArticleResourceLocalServiceUtil"]>
<#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.portlet.asset.service.AssetCategoryLocalServiceUtil"]>

<#assign articleResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, journalArticleId)/>
<#assign categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.portlet.journal.model.JournalArticle",articleResourcePK) >

<#list categoryList as categoryList>
${categoryList.getName()}
</#list>

当我执行代码时,它会抛出此错误:

08:26:30,582 ERROR [http-nio-8080-exec-10][runtime:60] Error executing FreeMarker template
FreeMarker template error:
The following has evaluated to null or missing:
==> staticUtil  [in template "20202#20246#41671" at line 14, column 51]

----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
        - Failed at: #assign journalArticleResourceLocalSe...  [in template "20202#20246#41671" at line 14, column 1]
----

Java stack trace (for programmers):
----

有没有人知道我在这里做错了什么? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我错了,我用liferay 6.2测试了这个。

  

我尝试了你的代码,它确保你能为我工作   在portal-ext.properties中提供模板服务

freemarker.engine.restricted.classes=
freemarker.engine.restricted.variables=
freemarker.engine.restricted.packages=
在liferay 7中,他们已经改变了freemarker引擎的设置,现在配置在控制面板中

Control Panel -> Configuration -> System Settings
-> Foundation -> FreeMarker Engine -> Restricted Variables

你必须在这里删除限制变量,在这种情况下是staticUtil