Liferay 6.0 使用 java 控制器从 db 获取 WebForm-portlet 数据

Posted

技术标签:

【中文标题】Liferay 6.0 使用 java 控制器从 db 获取 WebForm-portlet 数据【英文标题】:Liferay 6.0 get WebForm-portlet data from db with java controller 【发布时间】:2021-07-17 12:58:59 【问题描述】:

我使用了一些 webform portlet,例如询问用户在网站上的体验是否良好。 现在我需要获取 Web 表单值并创建一个表格来显示它们。我知道数据存储在 Exapando 的 liferay 数据库中(表、ros、列、值)。问题是我找不到网络表单名称。在 Expandotable 中,它的存储方式类似于 1_WAR_webformportlet_INSTANCE_...,但我想要出现在浏览器中的名称(例如“MY FORM”)。

希望有人可以帮助我...

PS:我在 JAVA 中使用 ExpandoTableLocalServiceUtil。

【问题讨论】:

【参考方案1】:

Expando API 模拟表格,您可以找到提取正确数据所需的各种其他 Expando* API 类。这不是针对数据运行报告的最直观方式,因为它主要是为存储现有实体的额外值而构建的。

话虽如此,一旦您从您选择的 ExpandoTable 中获得了正确的 id,您就可以查询 ExpandoColumnExpandoRow API,然后依次查询 ExpandoValue API(将 LocalServiceUtil 添加到所有) 以获得正确的值。

然后,当然,您需要在 html 输出中呈现这些值。

Web 表单也可以导出为 CSV,您可以使用该输出,也可以查看该代码,因为它还读取表单的所有数据。

我不能没有:您提到 Liferay 6.0 并标记 Liferay 6.2。两者都非常过时 - 请在面向公众的网站上运行更新的软件。

【讨论】:

非常感谢您的回答。我正在这样做:List<ExpandoTable> list = ExpandoTableLocalServiceUtil.getTables(comId, tabId); 但它返回了我的名字1_WAR_webformportlet_INSTANCE_...,我不能使用这个名字。在设置文件 csv 名称时,我正在寻找一种方法来让 webform 的名称像 liferay。如果这样调用表单,它会将 csv 文件设置为“webform-test”。您谈到了查看用于创建 .csv 文件的 liferay 代码……我该怎么做?如果你能再帮我一次,我真的很感谢你! PS:不幸的是,这不是一个新项目

以上是关于Liferay 6.0 使用 java 控制器从 db 获取 WebForm-portlet 数据的主要内容,如果未能解决你的问题,请参考以下文章

在 liferay 的视图中显示控制器数据

将用户从 LDAP 导入 Liferay

检查 Liferay 管理员用户登录

我们如何在 liferay7 中覆盖 liferay 模块?

Liferay-删除控制面板菜单

如何在 Liferay 控制面板中隐藏“我的帐户”portlet 中的选项卡