【发布时间】:2020-04-11 07:57:16
【问题描述】:
我想为我的门户中的每个表单提交创建一个侦听器。
我创建了一个名为“测试表单”的表单,并且在 Liferay 之前(或之后)将信息保存在本地数据库中,我想将数据表单发送到外部 API(并做任何需要的事情)。 我试图通过做类似的事情来完成这项任务:
import org.osgi.service.component.annotations.Component;
import com.liferay.portal.kernel.exception.ModelListenerException;
import com.liferay.portal.kernel.model.BaseModelListener;
import com.liferay.portal.kernel.model.Layout;
import com.liferay.portal.kernel.model.ModelListener;
@Component(immediate = true, service = ModelListener.class)
public class FormListener extends BaseModelListener<Layout> {
@Override
public void onBeforeCreate(Layout model) throws ModelListenerException {
System.out.println(
"About to create layout: " + model.getNameCurrentValue());
model.setTitle("Title generated by model listener!");
}
}
但是为与每个表单提交相关的类更改 Layout - 例如 FormContent 或类似的东西。是否可以使用“onAfterSubmit”侦听器(或类似的东西)来完成此操作,或者有更好的解决方案?
提前致谢。
【问题讨论】:
-
我猜你需要听的是FormInstanceRecord。没有验证
-
首先,您使用的是哪些表单应用程序? DDL 的表单视图或新的表单应用程序?
-
由内容创建的表单。管理员用户将通过门户开发自己的表单,我的目标是 - 在门户中发布表单后 - 将所有数据填写在所有表单中并集成到其他应用程序中。类似于这个项目,所有用户在liferay平台创建后都与CRM集成github.com/amusarra/liferay-crm-sample-integration