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

Can I get Journal article resource UUID from article ID?

我创建了一个 Liferay WCM 结构,其中包含一个字段,用户可以在其中输入现有 Web 内容的 ID。我想用 IDget 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

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

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

首先使用$serviceLocator.findService方法和

找到JournalArticleLocalServiceUtil
#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())