zoukankan      html  css  js  c++  java
  • Liferay7 BPM门户开发之35: AssetTag的集成查询

    Tag是liferay中的Asset特性,可以用来对信息进行分类,在iferay中的Asset类型为:

    • 1、 Web Content(自定义内容)
    • 2、 Documents and Media(文档库和媒体文件)
    • 3、 Blogs (博客文章)
    • 4、 Message Boards
    • 5、 Wiki Page
    • 6、 Bookmarks

    可以根据tagName来对信息进行归类统计,演示代码:

    //查询Tag的数量(符合tagName=‘news’)
    ThemeDisplay themeDisplay = (ThemeDisplay)renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
    String tagName = "news";
    try {
    AssetTag assetTag = AssetTagLocalServiceUtil.getTag(themeDisplay.getScopeGroupId(), tagName);
    int assetCount = assetTag.getAssetCount();
    System.out.println("Tage name: "+tagName);
    System.out.println("Number of associated assets: "+assetCount);
     
    } catch (PortalException e) {
    e.printStackTrace();
    } catch (SystemException e) {
    e.printStackTrace();
    }
    
    //=======================
    //查询all assets (by tagName)
    
    ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest
    .getAttribute(WebKeys.THEME_DISPLAY);
    String tagName = "news";
    try {
    AssetTag assetTag = AssetTagLocalServiceUtil.getTag(themeDisplay.getScopeGroupId(), tagName);
     
    AssetEntryQuery assetEntryQuery = new AssetEntryQuery();
    long[] tagIds = { assetTag.getTagId() };
    assetEntryQuery.setAnyTagIds(tagIds);
    List<AssetEntry> assetEntryList = AssetEntryLocalServiceUtil.getEntries(assetEntryQuery);
    for (AssetEntry assetEntry : assetEntryList) {
    //Here all the logic will go
    ......
    }
    } catch (PortalException e) {
    e.printStackTrace();
    } catch (SystemException e) {
    e.printStackTrace();
    }
    
    
    //=======================
    //查询JournalArticle所有符合tagName=‘news’的文章
    //备注:JournalArticle是liferay内置的一种Web CMS Content,利用它可以做新闻类的展示
    
    
    ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest
    .getAttribute(WebKeys.THEME_DISPLAY);
    String tagName = "news";
    try {
    AssetTag assetTag = AssetTagLocalServiceUtil.getTag(themeDisplay.getScopeGroupId(), tagName);
     
    AssetEntryQuery assetEntryQuery = new AssetEntryQuery();
    long[] tagIds = { assetTag.getTagId() };
    assetEntryQuery.setAnyTagIds(tagIds);
    assetEntryQuery.setClassName(JournalArticle.class.getName());
    List<AssetEntry> assetEntryList = AssetEntryLocalServiceUtil.getEntries(assetEntryQuery);
    //开始遍历JournalArticle
    for (AssetEntry assetEntry : assetEntryList) { 
    JournalArticleResource journalArticleResource = JournalArticleResourceLocalServiceUtil.getJournalArticleResource(assetEntry.getClassPK());
    JournalArticle journalArticle = JournalArticleLocalServiceUtil.getArticle(journalArticleResource.getGroupId(),journalArticleResource.getArticleId());
    System.out.println("Journal Article Title: "+journalArticle.getTitle(themeDisplay.getLocale()));
    }
    } catch (PortalException e) {
    e.printStackTrace();
    } catch (SystemException e) {
    e.printStackTrace();
    }
    
    
    //=======================
    //查询所有符合tagName=‘news’的书签等信息
    
    ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
    String tagName = "news";
    try {
    AssetTag assetTag = AssetTagLocalServiceUtil.getTag(themeDisplay.getScopeGroupId(), tagName);
    AssetEntryQuery assetEntryQuery = new AssetEntryQuery();
    long[] tagIds = { assetTag.getTagId() };
    assetEntryQuery.setAnyTagIds(tagIds);
    /**
    *  Bookmarks
    */
    assetEntryQuery.setClassName(BookmarksEntry.class.getName());
    List<AssetEntry> assetEntryList = AssetEntryLocalServiceUtil.getEntries(assetEntryQuery);
    for (AssetEntry assetEntry : assetEntryList) {
     
    BookmarksEntry bookmarksEntry = BookmarksEntryLocalServiceUtil.getBookmarksEntry(assetEntry.getClassPK());
    ....to do something
     
    }
    /**
    *  Blogs
    */
    assetEntryQuery.setClassName(BlogsEntry.class.getName());
    assetEntryList = AssetEntryLocalServiceUtil.getEntries(assetEntryQuery);
    for (AssetEntry assetEntry : assetEntryList) {
    BlogsEntry BlogsEntry = BlogsEntryLocalServiceUtil.getBlogsEntry(assetEntry.getClassPK());
    ....to do something
     
    }
     
    /**
    *  Documents and media
    */
    assetEntryQuery.setClassName(DLFileEntry.class.getName());
    assetEntryList = AssetEntryLocalServiceUtil.getEntries(assetEntryQuery);
    for (AssetEntry assetEntry : assetEntryList) {
    DLFileEntry dLFileEntry = DLFileEntryLocalServiceUtil.getDLFileEntry(assetEntry.getClassPK());
    ....to do something
     
    }
    } catch (PortalException e) {
    e.printStackTrace();
    } catch (SystemException e) {
    e.printStackTrace();
    }
  • 相关阅读:
    GhostBSD 3.0RC3,基于GNOME的FreeBSD
    Nagios 3.4.3 发布,企业级监控系统
    Jolokia 1.0.6 发布, JMX远程访问方法
    微软希望开发人员不要使 WebKit 成为新版 IE6
    Kwort Linux 3.5 正式版发布
    EJDB 1.0.24 发布,嵌入式 JSON 数据库引擎
    Pale Moon 15.3 Firefox“苍月”优化版发布
    Galera Load Balancer 0.8.1 发布
    SmartSVN V7.5 正式发布
    PostgresQL建立索引如何避免写数据锁定
  • 原文地址:https://www.cnblogs.com/starcrm/p/6061427.html
Copyright © 2011-2022 走看看