我创建了一个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
答案 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())