java中如何通过代码获取liferay表单名称

How to get liferay form name through code in java

我正在编写代码以通过 java 获取 liferay 表单,但我无法这样做。我正在使用记录集来执行此操作,但它只获取 DDL 记录集而不是表单。

public List<DDLRecordSet> getRecordSets()  {
        
        long groupId = themeDisplay.getScopeGroupId();
        System.out.println("groupId:::"+groupId);
        long liveGroupId = themeDisplay.getScopeGroup().getLiveGroupId();
        
        System.out.println("LiveGroupID::"+ liveGroupId);
        

        List<DDLRecordSet> results = DDLRecordSetLocalServiceUtil.getRecordSets(themeDisplay.getScopeGroupId());
        if (liveGroupId != 0) {
            results.addAll(DDLRecordSetLocalServiceUtil.getRecordSets(groupId));
        }
        System.out.println("Result::"+ results);
             return result;

}

只显示 DDL 记录集的输出,而不是记录集的形式。

输出= 结果:: [{mvccVersion=0, uuid=7ca2308a-29f0-b344-8eeb-13eda08fe745, recordSetId=46003, groupId=20124, companyId=20101, userId=35402, userName=Test1 Test1, versionUserId=0, versionUserName=, createDate =Fri Jun 11 05:06:35 GMT 2021,modifiedDate=Fri Jun 11 05:06:35 GMT 2021,D​​DMStructureId=34991,recordSetKey=46002,version=1.0,name=,description=,minDisplayRows=10,scope=0 , 设置=, lastPublishDate=null}]

请让我知道我哪里错了。

要获取 group/site 的所有创建形式,您可以通过 DDMFormInstanceLocalServiceUtil.getFormInstances(groupId) 获取 DDMFormInstance(或者最好使用 osgi 引用)。对我来说,不清楚你的场景需要什么(表单、表单字段、表单数据)。

如果您想要提交的数据(取决于您的处理程序,这可能会有所不同),您通常可以查找相应的 DDMFormInstanceRecord 并检查 storageId,它可能是保存您数据的 DDMContent 的 contentId(通常在json).