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();
    }
  • 相关阅读:
    【ccf线上赛普及组 2020】
    【小总结】2020.3.6
    DP优化
    noip2012day2
    noip2012day1
    3.28真题
    数据结构总结
    noi online 普及组
    小总结
    20200229模拟赛
  • 原文地址:https://www.cnblogs.com/starcrm/p/6061427.html
Copyright © 2011-2022 走看看