当前位置: 首页 > 知识库问答 >
问题:

Liferay 7 Freemarker模板。staticUtil已计算为NULL或丢失-试图获取JournalArticle的类别

鲁向明
2023-03-14
<#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>
freemarker.engine.restricted.classes=
freemarker.engine.restricted.variables=
freemarker.engine.restricted.packages=
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个答案

松琦
2023-03-14

在liferay 7中,他们已经改变了freemarker引擎的设置,现在Configuration Azion在控制面板中

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

您必须在这里删除限制变量

在Liferay7中对象的包被更改了,所以在本例中的crecreti 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>
 类似资料:
  • 我得到以下异常: FreeMarker模板错误:以下内容已计算为null或缺少:==>log.stepname[在模板“extent.offline.ftl”中,第297行,第93列]

  • 我面临的错误太奇怪了。一切看起来都很好,但是当浏览器向服务器发送get请求时,我得到了这个错误。我要做的实际上是捕获HTTP参数,将它们保存在一个对象中,该对象保存在ArrayList中,发送给Freemarker模板。 你能帮帮我吗?多谢.

  • 以上是我正在开发的Spark应用程序的主要方法。它涉及两个模板:loginform.ftl和result.ftl。ftl是一个简单的html表单,它向服务器发送post请求,由上面代码中的post处理程序处理。当我填写表单并发送请求时,我得到一个500内部服务器错误。这个错误与result.ftl有关,我现在用它来测试模板的制作。我将一个HashMap传递给result.ftl模板。我得到的错误是

  • 问题内容: 因此,我想以某种方式将模板中定义的所有操作作为字符串切片。 例如,如果我有此模板: 我希望能够得到。假设模板具有方法: 有没有办法检查这样分析的模板? 谢谢! 问题答案: 前言:正如Voker所建议的,该字段 “仅导出供html / template使用,并且应被所有其他客户端视为未导出”。 您不应该依赖这种东西来为模板执行提供输入。您必须知道要执行的模板以及所需的数据。您不应在运行时

  • 在WWDC 2013年第226期会议上介绍的iOS7中,有人尝试过模糊效果吗? 我尝试使用15:00时提到的代码片段: 但是代码不会运行,因为它调用的方法和类甚至不在API中。 此外,我还下载了示例项目,并以快照的方式运行。该项目甚至没有编译,因为导入的类根本不在那里。示例项目…认真地。。。 有人知道有没有办法不用第三方框架就能在iOS 7中进行模糊处理?

  • 我刚刚更新了IntelliJ,发现当我创建一个新类或页面时,自动完成标记不再生成。意思是我得到一个没有标签的空白页面。我假设是一个宏帮助生成这些页眉和页脚标记。有人知道是否有另一种方法可以重新实例化这个功能吗?如果做到这一点的唯一方法是通过文件和代码模板,有人有标记的宏吗?谢谢!! 图片1是我创建一个新类时该类的样子。然后,我必须手动添加标签,如图2所示。在更新之前,intellij会自动填充类名