#liferay #liferay-6 #velocity #liferay-velocity
#liferay #liferay-6 #скорость #liferay-velocity
Вопрос:
В моем шаблоне веб-контента Liferay 6.2 EE Velocity я объявил объект ThemeDisplay следующим образом:
#set ($themeDisplay = $request.theme-display)
Я также адаптировал свой портал-ext.properties:
velocity.engine.restricted.classes=
velocity.engine.restricted.variables=
Теперь я хочу вызвать следующий вызов метода:
#set ($articleId = $cross_selling.getData())
#set ($result = $JournalArticleLocalService.getArticleDisplay($groupId, $articleId, $viewMode, $themeDisplay.getLanguageId(), $themeDisplay))
$result
но неожиданный результат заключается в следующем:
$результат
Каков наилучший способ в Velocity вызвать метод $JournalArticleLocalService
?
Спасибо
Ответ №1:
Если вы не установили $JournalArticleLocalService
, сначала это следует сделать следующим образом. Затем вы можете использовать все методы, доступные JournalArticleLocalService.
#set ($JournalArticleLocalService = $serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService"))
Вы также должны выполнить проверку на нулевой идентификатор статьи, прежде чем пытаться ее использовать.
Комментарии:
1. Извините, я забыл предоставить вам весь фрагмент кода:
2.
#set ($JournalArticleLocalService = $serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService"))
— Я уже делал это3. Ваш код, похоже, в порядке в соответствии с вашими предыдущими комментариями и вопросами. Тогда есть только одна возможность, что ваш веб-контент имеет другой формат, который метод getArticleDisplay() не поддерживает. Проверьте эту ссылку- docs.liferay.com/portal/6.2/javadocs/com/liferay/portlet /…
4. @NeerajGautam О, я понимаю. Попробую использовать его со всеми описанными вызовами методов. Один должен работать…