utilLocator.findUtil(" com.liferay.portlet.asset.service.AssetEntryLocalServiceUtil")未定义

时间:2015-11-16 13:31:30

标签: liferay liferay-6 liferay-velocity

我在ADT自定义模板代码中使用以下代码

<#assign storageEngineUtil = utilLocator.findUtil("com.liferay.portlet.asset.service.AssetEntryLocalServiceUtil") />

但这是utilLocator.findUtil("com.liferay.portlet.asset.service.AssetEntryLocalServiceUtil") is undefined

这里有什么我想念的吗? 但

1 个答案:

答案 0 :(得分:3)

无法从Freemarker模板访问util类AssetEntryLocalServiceUtil

您要做的是访问AssetEntryLocalService。在ADT模板中限制访问Liferay服务。

您可以通过AssetEntryLocalServiceServiceLocator获取实例,但您必须告诉Liferay允许它。

默认配置限制对serviceLocator变量的访问权限(portal.properties)。

#
# Set a comma delimited list of variables the FreeMarker engine cannot
# have access to. This will affect Dynamic Data List templates, Journal
# templates, and Portlet Display templates.
#
freemarker.engine.restricted.variables=serviceLocator

需要将设置覆盖为portal-ext.properties中的空值(即允许在模板中使用serviceLocator)。

然后,您最终可以致电serviceLocator.findService来获取服务。

<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.portlet.asset.service.AssetEntryLocalService") />