Liferay 7 Freemarker模板。 staticUtil已评估为NULL或丢失 - 试图获得JournalArticle的类别 [英] Liferay 7 Freemarker Template. staticUtil has evaluated to NULL or missing - Tried to get JournalArticle's Categories
问题描述
嗨Liferay'ers老朋友,
我试图用Freemarker模板获取journalArticle的类别。
我试过这段代码:
< #assign journalArticleId = .vars ['reserved-article-id' ]。数据>
< #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>
我也将此行添加到 portal-setup-wizzard.properties
freemarker.engine.restricted.classes =
freemarker.engine.restricted.variables =
freemarker.engine.restricted.packages =
当我执行代码时,会引发此错误:
08:26:30,582错误[http-nio-8080-exec-10] [runtime:60]执行FreeMarker时出错模板
FreeMarker模板错误:
以下评估为null或缺失:
==> staticUtil [在模板20202#20246#41671第14行第51列]
----
提示:如果已知失败的表达式在法律上是指有时是有时null或丢失,或者指定一个默认值,如myOptionalVar!myDefault,或者在存在时使用< #if myOptionalVar ??><#><缺少时< /#if> ;. (这些只覆盖表达式的最后一步;要覆盖整个表达式,请使用括号:(myOptionalVar.foo)!myDefault,(myOptionalVar.foo)??
----
----
FTL堆栈跟踪(〜表示嵌套相关):
- 失败:#assign journalArticleResourceLocalSe ... [在模板20202#20246#41671在第14行,第1列]
----
Java堆栈跟踪(对于程序员):
----
有没有人有一个想法我在做什么错在这里?谢谢你提前。
在liferay 7中,他们已经改变了freemarker引擎的设置,现在configurazion已经在控制面板中了。
控制面板 - >配置 - >系统设置
- >基础 - > FreeMarker引擎 - >受限变量
您必须在此删除限制变量
在liferay 7中更改了对象的包,因此corr在这种情况下,ecti freemarker是
< #assign journalArticleId = .vars ['reserved-article-id']。data>
< #assign journalArticleResourceLocalServiceUtil = staticUtil [com.liferay.journal.service.JournalArticleResourceLocalServiceUtil]>
< #assign assetCategoryLocalServiceUtil = staticUtil [com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil]>
< #assign articleResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId,journalArticleId)/>
< #assign categoryList = assetCategoryLocalServiceUtil.getCategories(com.liferay.journal.model.JournalArticle,articleResourcePK)>
< #list categoryList as categoryList>
$ {categoryList.getName()}
< /#list>
Hi fellow Liferay'ers,
I'm trying to get the categories of a journalArticle with a Freemarker template.
I tried this code:
<#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>
I also added This lines to the portal-setup-wizzard.properties
freemarker.engine.restricted.classes=
freemarker.engine.restricted.variables=
freemarker.engine.restricted.packages=
When i execute the code it throws this error:
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):
----
Does anyone has an Idea what I am doing wrong here? Thank you in advance.
in liferay 7 they have change the setting of freemarker engine now the configurazion is in the control panel
Control Panel -> Configuration -> System Settings
-> Foundation -> FreeMarker Engine -> Restricted Variables
you have to remove here the restrict varibles
The package of object are changed in liferay 7 so the correcti freemarker in this case is
<#assign journalArticleId = .vars['reserved-article-id'].data>
<#assign journalArticleResourceLocalServiceUtil = staticUtil["com.liferay.journal.service.JournalArticleResourceLocalServiceUtil"]>
<#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]>
<#assign articleResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, journalArticleId)/>
<#assign categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",articleResourcePK) >
<#list categoryList as categoryList>
${categoryList.getName()}
</#list>
这篇关于Liferay 7 Freemarker模板。 staticUtil已评估为NULL或丢失 - 试图获得JournalArticle的类别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!