Шаблон веб-контента Liferay velocity — $JournalArticleLocalService

#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 О, я понимаю. Попробую использовать его со всеми описанными вызовами методов. Один должен работать…