You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更新Liferay 7.2表单数据并基于第二库ddmcontent表搭建可编辑DXP页面

Liferay DXP 备用库表单数据审核页面实现方案

方案选型对比

  • 不推荐直接使用独立JSP+JDBC方案:该方案虽然开发门槛低,但会直接跳过Liferay内置的权限校验、CSRF防护、事务管理、审计日志等基础能力,后续需要单独开发管理员权限控制、操作留痕等配套功能,长期维护成本很高,也不符合Liferay的官方开发规范。
  • 优先选择复用Liferay现有能力的方案,安全性、开发效率、可维护性都更有保障。

核心配置:接入第二个备用数据源

你有操作原生ddmcontent表开发REST API的经验,仅需额外配置Liferay多数据源即可拉取备用库数据:

  1. 在portal-ext.properties中添加备用库数据源配置:
jdbc.backupDS.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.backupDS.url=jdbc:mysql://<备用库地址>/<库名>?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
jdbc.backupDS.username=<数据库用户名>
jdbc.backupDS.password=<数据库密码>
jdbc.backupDS.maxActive=100
jdbc.backupDS.minIdle=10
  1. 数据访问有两种实现方式可选:
    • 自定义Service Builder模块,指定数据源为上述配置的backupDS,自动生成ddmcontent表对应的持久层代码
    • 直接通过JDBCUtil手动获取数据源连接执行原生SQL,示例代码:
DataSource backupDS = DataSourceFactoryUtil.initDataSource("jdbc.backupDS.");
Connection conn = backupDS.getConnection();
// 执行备用库ddmcontent表的查询、修改逻辑

审核页面最优实现方案

推荐基于Liferay MVC Portlet开发,完全复用Liferay原生能力:

  • 权限控制:直接通过Liferay后台角色配置,仅开放给表单管理员角色访问、操作数据,无需自行开发权限体系
  • 数据展示:后台查询备用库ddmcontent的JSON数据后,可以直接复用Liferay内置的DDM表单渲染API,渲染成和用户提交时完全一致的表单样式,无需自行开发前端表单组件
  • 数据修改:管理员修改提交后,直接将更新后的JSON写回备用库ddmcontent表即可,可按需对接Liferay自带的工作流审批、操作审计能力,自动留存所有修改记录
  • 如果需要更复杂的交互,也可以基于你之前开发的REST API扩展,适配备用数据源的读写逻辑,前端用Liferay自带的React组件开发前后端分离页面。

注意事项

  • 不要修改备用库ddmcontent表的主键、结构字段,避免和原有库数据逻辑冲突
  • 操作备用库数据时建议添加事务控制,避免异常导致数据不一致
  • 解析表单JSON时可以复用Liferay内置的DDMFormValuesJSONDeserializer工具类,无需自行处理字段映射逻辑

内容的提问来源于stack exchange,提问作者Aftab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 12:18:01