我定义了:
在另一个模板中我有收集文章参考的功能;我希望使用给定的模板呈现一篇文章。
...
#set( $templateId = 27121)
#set ($DDMTemplateLocalService = $serviceLocator.findService("com.liferay.portlet.dynamicdatamapping.service.DDMTemplateLocalService"))
#set( $ddmTemplate = $DDMTemplateLocalService.getTemplate($templateId))
#if( ( $articleId != $reserved-article-id.data ) )
#set( $webContent = $journalContentUtil.getContent( $groupId, $articleId, $ddmTemplate.getPrimaryKey(), "view", "$locale", $xmlRequest ) )
#if ( $webContent )
<div>${webContent}</div>
#else
<div>Cannot use $templateName</div>
#end
#end
...变量$ webContent始终为空。
答案 0 :(得分:0)
回复来自liferay论坛https://www.liferay.com/community/forums/-/message_boards/view_message/45238697
“JournalContentUtil的方法getContent获取ddmTemplateKey作为第三个参数,而不是ddmTemplateId。这是DDMTemplate的两个不同属性。如果使用$ ddmTemplate.getTemplateKey()而不是$ ddmTemplate.getPrimaryKey(),它应该工作(当然如果没有其他错误)。“
感谢KrzysztofGołębiowski
答案 1 :(得分:-1)
当您在Velocity标记之外时,您需要使用${webContent}
。 Freemarker也是如此。