Orbeon XForms:重复使用http服务进行多项操作

时间:2011-09-07 13:23:21

标签: orbeon

在Orbeon表单中http服务和操作之间的分离将允许将http服务重用于多个操作。但根据https://github.com/orbeon/orbeon-forms/blob/master/src/resources/forms/orbeon/builder/form/dialog-actions.xml#L67这个优势已被禁用 - 每个动作都需要自己的http服务。我看不出有任何理由这样做,为什么过滤出来的用过的提交?

谢谢!

1 个答案:

答案 0 :(得分:1)

最初,这是为历史原因完成的!我同意这是一个不受欢迎的限制。

但实际上你不能只删除对话框中的限制:原因是每个动作都有这样的代码:

<action ev:event="xforms-submit-done" ev:observer="my-service-submission">

这意味着如果您创建了多个操作,则每个操作都会注册一个事件处理程序以完成相同的服务,并且两个操作的处理程序都将运行,这将是不正确的行为。

这里需要的是:

  • 每个操作在启动服务时,将唯一标识符(例如操作的ID)传递给服务
  • 完成后,唯一ID将传递给xforms-submit-done
  • 每个操作的事件处理程序都可以对此ID进行过滤
  • 仅启动服务的操作的处理程序

顺便说一下,这需要对XForms引擎进行增强才能实现此功能,该功能已经suggested for XForms 2.0