我想问一下 liferay 中是否有任何 Java API 调用返回由特定用户上传的 Web 内容。
例如,我有一个用户上传了一些内容,我想在 portlet 中显示这些内容,我该如何通过 java 来做到这一点?
我想问一下 liferay 中是否有任何 Java API 调用返回由特定用户上传的 Web 内容。
例如,我有一个用户上传了一些内容,我想在 portlet 中显示这些内容,我该如何通过 java 来做到这一点?
如果您专门讨论在 portlet 中显示的 Web 内容,Web-content Display
那么您可以使用API 来根据用户获取内容。
在 Liferay 6.0 之前,Web 内容被称为,因此 API 名称没有改变。JournalArticleService
JournalArticleLocalService
JournalArticle
例如:
可以使用DynamicQuery
API,如下:
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);
上面的代码将检索所有JournalArticle
s,因此您将获得单个 Web 内容的所有版本,因为所有这些版本都存储在同一个JournalArticle
表中。因此,为此您可以为, , , ,等dynamicQuery
字段添加条件。version
id
resourcePrimKey
articleId
groupId
companyId
或者,如果您有更复杂的需求,您可以在 liferay 中创建一个custom-sql-finder来从 Liferay DB 表的任意组合中获取所需的数据。
如果您谈论的是博客、Wiki、文件、Web 内容等中的内容,则可以使用它们各自的内容*LocalServiceUtil
,也可以使用它们AssetEntryLocalServiceUtil
来获取特定用户的资产。
因此,AssetEntryLocalServiceUtil
您也可以使用DynamicQuery
如上所示的 API。代码可能不一样,但会遵循相同的行。
DynamicQuery
您可以从此博客了解更多关于API 的信息。