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,您就可以查询 ExpandoColumn
和 ExpandoRow
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 数据的主要内容,如果未能解决你的问题,请参考以下文章