【发布时间】:2017-02-16 08:16:08
【问题描述】:
我创建了一个 Liferay WCM 结构,其中包含用户输入现有 Web 内容 ID 的字段。我想用那个ID来get the resource UUID。
我怎样才能做到这一点?
更新:
我在 Parkash Kumar 的帮助下使用 FreeMarker 语言而不是 Velocity,它可以工作,但使用的是 Id:
<#assign EntryId = 456017 /><#-- id -->
<#assign EntryArticleId= 444831 /><#-- articleId -->
<#assign articleId = EntryId?number />
<#assign articleService = objectUtil("com.liferay.portlet.journal.service.JournalArticleLocalServiceUtil") />
<#assign article = articleService.getJournalArticle(articleId) />
<#assign articleResourceId = article.getArticleResourceUuid() />
当我使用articleId 时,我收到此错误:
com.liferay.portlet.journal.NoSuchArticleException: No JournalArticle exists with the primary key 444831
【问题讨论】:
-
是的,您可以通过
getUuid()从JournalArticle对象获取它 -
我为您提供了
FreeMarker解决方案,因为您没有提到您在模板中使用了Velocity。 -
它们很相似。但是,每篇文章都有一个
id、一个resourcePrimKey和一个articleId,它们是由6个数字组成的唯一标识符。例如,我的文章“Hello World”具有以下 ID:id=456017、resourcePrimKey=444833和articleId=444831。当我使用articleIdgetJournalArticle() 时它不起作用,但当我使用id时它起作用。为什么? -
你有
groupId吗?如果是,那么您可以使用服务中的getArticle(groupId, articleId)。 -
没问题,其实我之前没有看到其他方法。
标签: java liferay liferay-6 freemarker