我可以从文章ID获取期刊文章资源UUID吗?

时间:2016-10-07 10:46:24

标签: java liferay liferay-6 freemarker

我创建了一个Liferay WCM结构,其中包含用户输入现有Web内容ID的字段。我想将 ID 用于get the resource UUID

我该如何做到这一点?

更新

我使用 FreeMarker 语言而不是Velocity跟随 Parkash Kumar 的帮助,它可以使用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

2 个答案:

答案 0 :(得分:2)

如果您有ID,可以通过这种方式获取UUID。

    JournalArticle article = JournalArticleLocalServiceUtil.getArticle(articleId);
    article.getUuid();

答案 1 :(得分:2)

首先使用JournalArticleLocalServiceUtil方法和

找到$serviceLocator.findService
#set($articleService = $serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalServiceUtil"))

然后使用getArticle方法按ID(主键)/ articleId获取文章,如下所示:

#set($id = xxx) here `xxx` is your `$id (primary key)`
#set($articleById = $articleService.getArticle($id))

#set($articleId = xxx) here `xxx` is your `$articleId`
#set($articleByArticleId = $articleService.getArticle($groupId, $articleId))

现在,您可以访问$article对象的所有属性:

#set($articleResourceId = $article.getArticleResourceUuid())
#set($articleUUId = $article.getUuid())