【发布时间】:2017-11-29 08:37:36
【问题描述】:
我正在使用 Liferay 7.0 ga3,我想用网页内容的结构/模板(freemarker)制作一个轮播(bootstarp)。 这些结构允许在我的轮播中显示多个 Web 内容。但在我的模板中,cur_WebContent.getData() 显示了 WebContent 的 className 和 ID:
{"className":"com.liferay.journal.model.JournalArticle","classPK":"42553"}
所以我只使用“?keep_after”和“?remove_ending”来获取我的 ID:
<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
<#assign web_content_id= cur_WebContent.getData()?keep_after("classPK\":\"")?remove_ending("\"}") >
<#assign cur_articleID = journalArticleLocalService.fetchArticle(groupId, web_content_id)>
${journalArticleLocalService.getArticleContent(cur_articleID, cur_articleID.getDDMTemplateKey(), "VIEW", locale, themeDisplay)}
我可以像 ${web_content_id} 这样在轮播中显示这些信息,但如果我在 fetchArticle(groupId, articleId) 中使用它,它就不起作用:
FreeMarker template error:
The following has evaluated to null or missing:
==> journalArticleLocalService.fetchArticle(groupId, web_content_id) [in template "20116#20160#47034" at line 7, column 30]
----
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 cur_articleID = journalArticl... [in template "20116#20160#47034" at line 7, column 5]
----
有什么想法吗? 谢谢
【问题讨论】:
-
classPK 与 ID 的网页内容不同...
标签: freemarker liferay-7 web-content