简体   繁体   中英

Liferay 7 Freemarker Template - Get Articles Categories

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>

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.

i was wrong i test this withi liferay 6.2

I tried your code that it's working for me make sure you have abilitate the services for template in portal-ext.properties

 freemarker.engine.restricted.classes= freemarker.engine.restricted.variables= freemarker.engine.restricted.packages= 

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 in this case staticUtil

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM