Как получить веб-контент AssetEntry с помощью liferay?

Я получаю такие записи актива:

List<AssetEntry> emt = AssetEntryLocalServiceUtil.getEntries(q);

Записи активов имеют много методов, таких как assetEntry.getTitle(), но не для получения источника (входной ответ веб-контента). В журнале liferay taglib это работает так: <liferay-ui:journal-article articleId="74550" groupId="10164" ></liferay-ui:journal-article>

Как я могу получить содержимое веб-контента с помощью AssetEntry?


person javier carrion    schedule 12.07.2011    source источник


Ответы (5)


Объект assetsEntry позволяет вам получать веб-контент, комбинируя getClassName(), который является «com.liferay.portlet.journal.model.JournalArticle», и getClassPK(), который дает вам идентификатор веб-контента для assetsEntry. .

Имея эту информацию, вы можете вызвать следующее:

JournalArticle wc = JournalArticleLocalServiceUtil.getArticle(assetEntry.getClassPK());
person cpinto    schedule 14.07.2011

Вы можете получить доступ к содержимому формы xmlString, упомянутой выше, как это

JournalContentUtil.getDisplay(journalArticle.getGroupId(), journalArticle.getArticleId(),
            null, null, locale.toString(), xmlRequest);

где xmlRequest может быть сгенерирован запросом формы и ответом, подобным этому

String xmlRequest = PortletRequestUtil.toXML(request,response);

и JournalArticle можно получить, как Марк, упомянутый выше, вот так

 JournalArticle article = JournalArticleLocalServiceUtil.getLatestArticle(assetEntry.getPrimaryKey());

Это отлично работает для Liferay 6.1.1 и должно работать в более старых версиях.

person Miroslav Ligas    schedule 28.08.2012

 JournalArticleResource journalArticleResourceObj = JournalArticleResourceLocalServiceUtil.getJournalArticleResource(ae.getClassPK()); 
 JournalArticle journalArticleObj = JournalArticleLocalServiceUtil.getArticle(themeDisplay.getScopeGroupId(),journalArticleResourceObj.getArticleId());  

В журналеArticleObj есть все необходимые данные.

person Haris    schedule 05.08.2013

Я не пробовал код ниже, но это код, работающий в отображении по умолчанию (аннотации) издателя активов.

AssetRenderer assetsRenderer = (AssetRenderer) request.getAttribute("view.jsp-assetRenderer"); Резюме строки = assetsRenderer.getSummary(locale);

Вы можете проверить код в файле: /liferay/liferay620/tomcat-7.0.42/webapps/ROOT/html/portlet/asset_publisher/display

person Vaibu    schedule 25.03.2014

person    schedule
comment
Это всегда просто выдает ошибку, например No JournalArticle существует с первичным ключом 722473. Может ли AssetEntry существовать без JournalArticle? - person Joel Peltonen; 21.03.2016
comment
Да @Ненотлеп. AssetEntry не обязательно должна быть JournalArticle как таковая. Цитата с форумов Liferay: активом может быть что угодно, запись в блоге, журнальная статья, вопрос/ответ в опросе... AssetEntry — это сущность, представляющая конкретный актив. - person evaldeslacasa; 20.02.2017