Liferay 如何按结构/模板名称获取结构/模板id

Liferay 如何按结构/模板名称获取结构/模板id,liferay,liferay-6,liferay-theme,liferay-aui,Liferay,Liferay 6,Liferay Theme,Liferay Aui,我有一个要求,需要创建带有结构和模板的JournalArticle。创建JournalArticle时,该方法需要StructureId和TemplateId,但它们是由Liferay生成的。因此,根据名称,如何获取两者的Id。您可以使用此代码获取StructureId(称为DDMSStructure) long classNameIdJournalArticle = ClassNameLocalServiceUtil.getClassNameId(JournalArticle.class);

我有一个要求,需要创建带有结构和模板的JournalArticle。创建JournalArticle时,该方法需要StructureId和TemplateId,但它们是由Liferay生成的。因此,根据名称,如何获取两者的Id。

您可以使用此代码获取StructureId(称为DDMSStructure)

long classNameIdJournalArticle = ClassNameLocalServiceUtil.getClassNameId(JournalArticle.class);
DDMStructure ddmStructure = DDMStructureLocalServiceUtil.getStructure(groupId, classNameIdJournalArticle, "myDDMStructureName");
 DDMTemplate ddmTemplate = DDMTemplateLocalServiceUtil.getTemplate(groupId, classNameIdDDMStructure, "ddmTemplateName");
和TemplateId(称为DDMTemplate)使用此代码

long classNameIdJournalArticle = ClassNameLocalServiceUtil.getClassNameId(JournalArticle.class);
DDMStructure ddmStructure = DDMStructureLocalServiceUtil.getStructure(groupId, classNameIdJournalArticle, "myDDMStructureName");
 DDMTemplate ddmTemplate = DDMTemplateLocalServiceUtil.getTemplate(groupId, classNameIdDDMStructure, "ddmTemplateName");

创建并执行
动态查询
,如下所示(只需将
模板
替换为
结构
即可获得结构):


不同地区可以有不同的名称。

一种方法是获取所有结构和模板,遍历它们,并根据名称检查填充所需的结构/模板。另一种方法是将
DynamicQuery
传递给
xxxLocalServiceUtil
的方法
DynamicQuery
,它将返回结果列表。1。2.没什么不同。@RomeoThis不是按名称获取的,而是按templateKey获取的。事实上,structureKey/templateKey可以被视为一个名称。当您查看“ddmsstructure”表时,您甚至会在其中找到一些预定义结构的常规名称(而不是生成的数字)。不幸的是,Liferay API对此并不清楚,您可能也找不到任何相关文档。可以肯定的是,您不能通过GUI更改这些“*Key”值……嗨,只是一个小小的改进建议:为了避免选择名称以“YOUR name”开头的结构,您最好将代码
。例如(“%YOUR name%”)更改为
。例如(“%>YOUR name%”)