8

Liferay 6.2 で Application Display Templates を使用しました。liferay のダイナミクス データ リストのページ付けに freemarker ヘルプを使用しています。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" at 9 行目、27 列目]

portal-ext.properties に以下を追加しました:

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

5 に答える 5

7

あなたが参照しているプロパティは、Liferay 7/DXP の OSGI 構成に移動されました。それらを展開するには、 com.liferay.portal.template.freemarker.configuration.FreeMarkerEngineConfiguration.cfgという名前のファイルを作成し、それを以下に配置する必要があります$LIFERAY_HOME/osgi/configs

ファイルの内容は次のようになります。

restrictedVariables=

すべての構成とそのデフォルトを見つけるには、クラスを見ることができますcom.liferay.portal.template.freemarker.configuration.FreeMarkerEngineConfiguration

Liferay ソースコードで見つけることができます。

于 2017-03-31T05:41:01.907 に答える
5

portal-ext.properties のこれらのプロパティは、liferay 7 では無視されるだけだと思います。

Control Panel → Configuration → System Settings → Foundation → FreeMarker Engine でこれらのプロパティを管理し、制限された変数から「staticUtil」を削除 (または「serviceLocator」を直接削除) できます。(liferay の再起動が必要です)

于 2016-10-24T11:34:49.037 に答える