Liferay 7 Freemarker模板。 staticUtil已评估为NULL或丢失 - 试图获得JournalArticle的类别 [英] Liferay 7 Freemarker Template. staticUtil has evaluated to NULL or missing - Tried to get JournalArticle's Categories

查看:207
本文介绍了Liferay 7 Freemarker模板。 staticUtil已评估为NULL或丢失 - 试图获得JournalArticle的类别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆