获取用户特定的web内容



我想问一下是否有任何Java API调用在liferay返回web内容,这是由特定用户上传的

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

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

例如:

您可以使用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,这样您就可以获得单个web内容的所有版本,因为所有这些版本都存储在同一个JournalArticle表中。因此,您可以在dynamicQuery中为version, id, resourcePrimKey, articleId, groupId, companyId等字段添加条件。

或者,如果您有更复杂的需求,您可以在liferay中创建一个自定义sql查找器来从任意组合的liferay DB表中获取所需的数据。


如果你谈论的是博客、维基、文件、Webcontents等内容,那么要么使用它们各自的*LocalServiceUtil,要么使用AssetEntryLocalServiceUtil来获取特定用户的资产。

因此,对于AssetEntryLocalServiceUtil,您也可以使用DynamicQuery API,如上所示。代码可能不相同,但将沿着相同的行。


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

最新更新