2

我想问一下 liferay 中是否有任何 Java API 调用返回由特定用户上传的 Web 内容。

例如,我有一个用户上传了一些内容,我想在 portlet 中显示这些内容,我该如何通过 java 来做到这一点?

4

1 回答 1

2

如果您专门讨论在 portlet 中显示的 Web 内容,Web-content Display那么您可以使用API 来根据用户获取内容。 在 Liferay 6.0 之前,Web 内容被称为,因此 API 名称没有改变。JournalArticleServiceJournalArticleLocalService
JournalArticle

例如:

可以使用DynamicQueryAPI​​,如下:

long userId = 10987L; // ofcourse you need to find this

DynamicQuery dynamicQuery = JournalArticleLocalServiceUtil.dynamicQuery();

dynamicQuery.add(RestrictionsFactoryUtil.eq("userId", userId));

int startOfList = 0;
int endOfList = 1000;
// if you want all the JournalArticle retrieved then use:
// int endOfList = QueryUtil.ALL_POS;

// this will retrieve the list of webcontents
List<JournalArticle> articles = (List<JournalArticle>) JournalArticleLocalServiceUtil.dynamicQuery(dynamicQuery, startOfList, endOfList);

上面的代码将检索所有JournalArticles,因此您将获得单个 Web 内容的所有版本,因为所有这些版本都存储在同一个JournalArticle表中。因此,为此您可以为, , , ,等dynamicQuery字段添加条件。versionidresourcePrimKeyarticleIdgroupIdcompanyId

或者,如果您有更复杂的需求,您可以在 liferay 中创建一个custom-sql-finder来从 Liferay DB 表的任意组合中获取所需的数据。


如果您谈论的是博客、Wiki、文件、Web 内容等中的内容,则可以使用它们各自的内容*LocalServiceUtil,也可以使用它们AssetEntryLocalServiceUtil来获取特定用户的资产。

因此,AssetEntryLocalServiceUtil您也可以使用DynamicQuery如上所示的 API。代码可能不一样,但会遵循相同的行。


DynamicQuery您可以从此博客了解更多关于API 的信息。

于 2013-01-18T10:36:36.357 回答