如何在 Liferay Portlet 中通过结构名称获取 Web 内容?
How to get Web Content by Structure name in Liferay Portlet?
我需要在 jsp portlet 中获取使用特定结构创建的所有 Web 内容。
我尝试使用 structureName 但这会引发异常
ClassLoader cl = PortalClassLoaderUtil.getClassLoader();
DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(JournalArticle.class, cl)
.add(PropertyFactoryUtil.forName("structureName").eq("Empresa"));
List <JournalArticle> journalArticles = JournalArticleLocalServiceUtil.dynamicQuery(dynamicQuery);
如何按结构获取网页内容?
查询journalarticles时需要使用structureId字段,像这样传递structureKey作为值
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);
}
不需要构造动态查询,fiddle使用class加载器,JournalArticleService
可以做到。
参见JournalArticleLocalServiceUtil#getStructureArticles(groupId, dmStructureKey)
。
我需要在 jsp portlet 中获取使用特定结构创建的所有 Web 内容。
我尝试使用 structureName 但这会引发异常
ClassLoader cl = PortalClassLoaderUtil.getClassLoader();
DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(JournalArticle.class, cl)
.add(PropertyFactoryUtil.forName("structureName").eq("Empresa"));
List <JournalArticle> journalArticles = JournalArticleLocalServiceUtil.dynamicQuery(dynamicQuery);
如何按结构获取网页内容?
查询journalarticles时需要使用structureId字段,像这样传递structureKey作为值
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);
}
不需要构造动态查询,fiddle使用class加载器,JournalArticleService
可以做到。
参见JournalArticleLocalServiceUtil#getStructureArticles(groupId, dmStructureKey)
。