首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Orbeon Forms Builder自定义持久性API:为什么它调用/crud/.../data/data.xml?

Orbeon Forms Builder自定义持久性API:为什么它调用/crud/.../data/data.xml?
EN

Stack Overflow用户
提问于 2012-06-04 23:51:49
回答 2查看 769关注 0票数 1

我目前正在为Orbeon表单实现我自己的持久层。就我对virtual hierachy of data的理解而言,在应用程序"myapp“中使用form Builder创建名为"myform”的表单应该会导致表单生成器调用

/crud/myapp/myform/ form /form.xhtml,将新创建的表单作为HTTP-PUT数据传递。因此,我创建了一个spring方法,注释为:

代码语言:javascript
复制
@RequestMapping(method = RequestMethod.PUT, value = "/crud/{applicationName}/{formName}/form/form.xhtml")
public void saveForm(@PathVariable String formName, @RequestBody String putData)

我期望在我的表单中调用这个方法。但是这个方法不会被调用。相反,该方法

代码语言:javascript
复制
@RequestMapping(method = RequestMethod.PUT, value = "/crud/{applicationName}/{formName}/data/{uuid}/data.xml")
public void saveInstance(@PathVariable String uuid, @RequestBody String putData)

会被召唤。putData包含完整的XHTML表单。为什么会发生这种情况?我认为第二个URL只会被调用来保存一个实例,更具体地说是表单的<xforms:instance id="fr-form-instance">部分,一旦我填写了表单的值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-06 00:38:30

答案是表单定义可以在两个地方:

  1. 当您使用表单生成器对其进行编辑时,表单定义就是生成器所关心的表单数据。所以它被存储为orbeon/builder.
  2. When的data.xml,你发布它,它被复制到(HTTP PUT) myapp/myformform.xhtml中。当需要表单定义来查看/编辑/搜索与该表单关联的数据时,也会从那里读取(HTTP GET)。

您可以通过发布表单轻松地验证这一点。

好消息是,您无论如何都需要上面的1来处理已发布表单的表单数据。

请注意,表单定义和表单数据都可以有附件。

票数 1
EN

Stack Overflow用户

发布于 2012-06-05 01:17:59

虽然手册没有明确说明,但您应该仔细查看一下实际称为:/crud/orbeon/builder/data/<some uuid>/data.xml的URL。您看到这实际上是如何将表单保存为与orbeon构建器关联的实例,而不是您要保存的表单?

此方法完成后,您可以按"publish“,这将调用上面所需的saveForm方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10884207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档