使用速度模板中的给定模板呈现文章

时间:2014-11-06 16:10:58

标签: liferay liferay-6 liferay-velocity

我定义了:

  • 结构
  • 与结构相关联的两个或多个模板(完整内容,短块摘要,......)
  • 给定结构中的网络内容

在另一个模板中我有收集文章参考的功能;我希望使用给定的模板呈现一篇文章。

...
#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始终为空。

2 个答案:

答案 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也是如此。