java Lifefay freemarker ADT:方法不可用?
我正在尝试为asset publisher开发一些ADT(文档和媒体类型),但我经常收到一条消息,告诉我:
Expression assetRenderer.getDataRepositoryId is undefined
或
Expression assetRenderer.getFileEntryId is undefined
我发现了一些人们说我们必须添加的线索
velocity.engine.restricted.classes=
velocity.engine.restricted.variables=
freemarker.engine.restricted.classes=
freemarker.engine.restricted.variables=
在portal-ext.properties
中获得更多可用的类和变量,但仍然无法调用某些方法,我不知道为什么
我做了一个测试
${assetRenderer.getClassName()}
返回:com.liferay.portlet.documentlibrary.model.DLFileEntry
所以我应该能够使用任何DLFileEntry类公共方法(和扩展类),对吗
我错过了什么
# 1 楼答案
资产呈现器呈现给定类的资产条目(ei.
JournalArticle
或DLFileEntry
)。资产呈现器本身不是给定类的实例(在Java意义上)。它总是com.liferay.portlet.asset.model.AssetRenderer
的实例要获取相关
DLFileEntry
的实例,必须使用DLFileEntryLocalService
来查找它请注意,您需要通过在
portal-ext.properties
中设置freemarker.engine.restricted.variables=
来显式启用serviceLocator
的用法