2016-06-13 1 views
3

jsp 포틀릿에서 특정 구조로 생성 된 모든 웹 컨텐츠를 가져와야합니다.Liferay Portlet의 구조 이름을 사용하여 웹 컨텐츠를 얻는 방법은 무엇입니까?

나는 structureName 사용하려고하지만 이것은 excepcion 나는 구조로 웹 콘텐츠를 어떻게

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

관련 문제