2016-06-13 11 views
3

jspポートレット内の特定の構造で作成されたすべてのWebコンテンツを取得する必要があります。Liferayポートレットで構造名でWebコンテンツを取得する方法は?

私はstructureNameを使用しようとするが、これはexcepcion私は構造により、Webコンテンツを取得する方法

ClassLoader cl = PortalClassLoaderUtil.getClassLoader(); 
DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(JournalArticle.class, cl) 
     .add(PropertyFactoryUtil.forName("structureName").eq("Empresa")); 
List <JournalArticle> journalArticles = JournalArticleLocalServiceUtil.dynamicQuery(dynamicQuery); 

を投げますか?

答えて

1

あなたはstructureIdフィールドを使用する場合、クエリjournalarticlesとクラスローダと動的照会やフィドルを構築する必要はありません、このよう

DynamicQuery dynamicQueryStructure = DynamicQueryFactoryUtil.forClass(
       DDMStructure.class).add(PropertyFactoryUtil.forName("name").like(
       "%>Empresa</Name>%")); 

     List<DDMStructure> structures = DDMStructureLocalServiceUtil.dynamicQuery(dynamicQueryStructure, 0, 1); 
     if(!structures.isEmpty()) { 
      String structureKey = structures.get(0).getStructureKey(); 
      ClassLoader cl = PortalClassLoaderUtil.getClassLoader(); 
      DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(JournalArticle.class, cl) 
        .add(PropertyFactoryUtil.forName("structureId").eq(structureKey)); 
      List<JournalArticle> journalArticles = JournalArticleLocalServiceUtil.dynamicQuery(dynamicQuery); 

     } 
+0

完璧、多くありがとう!!! – MGar

関連する問題