lee*_*trj 7 freemarker liferay display-templates liferay-7
我在liferay 6.2上工作了应用程序显示模板,我使用freemarker帮助分页liferay的动态数据列表.当我升级到liferay 7时,这是一个问题.Liferay 7使用代码<#assign records = ddlDisplayTemplateHelper.getRecords(reserved_record_set_id)>
获取记录.
旧代码:
<#assign DDLRecordLocalService = serviceLocator.findService("com.liferay.portlet.dynamicdatalists.service.DDLRecordLocalService")> <#assign records = DDLRecordLocalService.getRecords(reserved_record_set_id)> <#assign totalRecord = DDLRecordLocalService.getRecordsCount(reserved_record_set_id, 0) >
它不起作用.
所以我尝试<#assign serviceLocator = staticUtil["com.liferay.portal.template.ServiceLocator"]>
但staticUtil
得到一个错误.
以下评估为null或缺失:==> staticUtil [在模板"20115#20159#21387"第9行,第27列]提示:如果已知失败的表达式合法地引用有时为null或缺失的内容
在portal-ext.properties中我添加了:
freemarker.engine.restricted.classes=
freemarker.engine.restricted.packages=
freemarker.engine.restricted.variables=
Run Code Online (Sandbox Code Playgroud)
小智 5
我认为 portal-ext.properties 中的那些属性在 liferay 7 中被忽略了。
您可以在控制面板中管理这些属性吗?配置 ?系统设置 ?基础 ?FreeMarker 引擎并从受限变量中删除“staticUtil”(或直接删除“serviceLocator”)。(需要重启liferay)
您引用的属性已移至Liferay 7/DXP中的OSGI配置.要部署它们,您需要创建一个名为com.liferay.portal.template.freemarker.configuration.FreeMarkerEngineConfiguration.cfg的文件并将其置于$LIFERAY_HOME/osgi/configs
该文件的内容如下:
restrictedVariables=
Run Code Online (Sandbox Code Playgroud)
要查找所有配置及其默认值,您可以查看该课程 com.liferay.portal.template.freemarker.configuration.FreeMarkerEngineConfiguration
您可以在Liferay源代码中找到.
归档时间: |
|
查看次数: |
4527 次 |
最近记录: |