如何在 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 管理面板中创建自定义 HTML 表单?
如何使用 VBA 在 ms 访问表单中创建自定义自动编号? [关闭]