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

时间:2019-07-10 14:38:07

标签: content-management-system magnolia

问题

我在木兰中创建了一个custom app,用于渲染表格。

⋅该应用程序从jcr呈现一些信息

⋅用户更改该表单并提交

⋅如何保留这些更改?

根据木兰documentation,需要自定义表格处理程序。

我所做的事情:

  1. 创建了自定义表单处理器 public class Bla extends AbstractFormProcessor { @Override protected void internalProcess(Node content, Map<String, Object> parameters) throws FormProcessorFailedException { final String stopHere = "•••"; } } node

  2. Java类

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

不幸的是,调试器不会在{{1}}处停止。

我在这里想念什么?

2 个答案:

答案 0 :(得分:0)

由于没有木兰社区,这就是我所做的:

在我的情况下,自定义表单处理器无法解决。我只是想处理该请求,但是要做这种木兰方法,您必须:

⋅将表单组件添加到模板中

⋅以三种类型(page | area | component)定义模板,其中模板where页面⊆区域⊆组件

⋅然后,在我的情况下,必须使用取决于您的配置的伪指令:[@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]

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

我用filter解决了这个问题。

答案 1 :(得分:0)

如果您要使用木兰表格模块中的表格组件,则应创建一个新的额外表格处理器来处理您的请求(类似于电子邮件处理器)

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