将Web内容显示到Web内容模板中



我正在使用Liferay 7.0 Ga3,我想用Web内容的结构/模板(FreeMarker(制作一个轮播(bootstarp(。这些结构允许在我的轮播中显示几个Web内容。但是在我的模板中,cur_webcontent.getdata((显示className和webcontent的ID:

{"className":"com.liferay.journal.model.JournalArticle","classPK":"42553"}

所以我使用"?

<#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 articleIdID (,它不起作用:

    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]
----

有什么想法吗?谢谢

我猜我需要将web_content_id转换为数字

<#assign web_content_id = [...]?number />

classpk =" 42553",但是classPK与ID的Web内容不同。

astuce:id = classpk -2&lt; => id = 42553-2 = 42551

(而不是:
<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
<#assign wcd_obj = webContent.getData() />
<#list wcd_obj?split(",") as x>
    <#if (x?last_index_of("classPK") != -1)>
        <#assign web_content_id = x?keep_after("classPK":"")?remove_ending(""}")?remove_ending(""") >
    </#if>
</#list>
<#if web_content_id??>
    <#assign real_web_content_id = web_content_id?number-2>
    <#assign cur_articleID = journalArticleLocalService.fetchArticle(groupId, real_web_content_id?string)>
    ${journalArticleLocalService.getArticleContent(cur_articleID, cur_articleID.getDDMTemplateKey(), "VIEW", locale, themeDisplay)}
</#if>

我使用gérômehack,而不是简单的拆分?以反向风格[心灵爆炸]。

staging -> {"className":"com.liferay.journal.model.JournalArticle","classPK":"42553"}
live -> {"classPK":"42553", "className":"com.liferay.journal.model.JournalArticle"}

最新更新