如何在 Magnolia 中创建自定义表单处理器?

Posted

技术标签:

【中文标题】如何在 Magnolia 中创建自定义表单处理器?【英文标题】:How to create a custom form processor in Magnolia? 【发布时间】:2019-07-10 14:38:07 【问题描述】:

问题

我在 magnolia 中创建了一个 custom app 来呈现一个表单。

⋅ 应用从jcr渲染一些信息

⋅ 用户对该表单进行更改并提交

⋅如何持久化这些变化?

根据 magnolia documentation 需要自定义表单处理器。

我做了什么:

    创建了自定义表单处理器 /modules/form/templates/components/myFormProcessor

    Java 类

public class Bla extends AbstractFormProcessor 

    @Override
    protected void internalProcess(Node content, Map<String, Object> parameters) throws FormProcessorFailedException 
        final String stopHere = "•••";
    


    设置表单操作
<form action="./persistMyChanges" method="POST">
   •••
</form>

不幸的是,调试器不会停在stopHere

我在这里错过了什么?

【问题讨论】:

【参考方案1】:

由于没有木兰社区之类的东西,我就是这样做的:

在我的情况下,自定义表单处理器无法正常工作。我只是想处理请求,但要做到这一点,您必须采用 magnolia 方式:

⋅ 向您的模板添加表单组件

⋅ 以三种类型中的任何一种定义您的模板 (page|area|component) 其中模板 ⊆ 页面 ⊆ 区域 ⊆ 组件

⋅ 然后你必须使用取决于你的配置的指令,在我的情况下它应该是这样的:[@cms.area name="main"]

⋅ 我开始收到如下模板错误:

The following has evaluated to null or missing:
==> stkfn [in template "templating-kit/pages/section/contentArea.ftl" at line 7, column 38]

即使在 magnolia 企业支持的帮助下也无法解决此问题。

我使用filter 解决了这个问题。

【讨论】:

【参考方案2】:

如果您使用的是 magnolia forms modul 中的表单组件,那么您应该创建一个新的额外表单处理器来处理您的请求(类似于电子邮件处理器)

如果您有一个具有固定值的表单,您可以通过模型类或自定义休息端点处理请求

【讨论】:

以上是关于如何在 Magnolia 中创建自定义表单处理器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WordPress 中创建自定义表单?

如何在 Wordpress 管理面板中创建自定义 HTML 表单?

如何使用 VBA 在 ms 访问表单中创建自定义自动编号? [关闭]

text 在WordPress中创建自定义搜索表单

在 PayPal Payflow Link 信用卡表单中创建自定义字段

如何在reactjs挂钩中创建自定义挂钩?