尝试设置自定义ORBEON REST持久性时,我已经挣扎了一个多星期。
我正在使用具有以下配置的Struts 2 MVC框架:
<action name="/crud/{appName}/{formName}/form/form.xhtml" class="com.example.CrudController" method="executeForm" />
<action name="/crud/{appName}/{formName}/data/{uuid}/data.xml" class="com.example.CrudController" method="executeData" />
<action name="/search/{appName}/{formName}" class="com.example.SearchController" />
问题是只有第一个动作被调用。
从表单构建器中,当我单击表单记录(例如“foo”)时,这称为:
GET http://localhost:8080/mycontext/app/crud/myapp/library/form/form.xhtml
请注意,myapp是正确的应用程序名称,但库不是正确的表单名称(应该是“foo”)。
从Form Runner,当我尝试“foo”摘要或新页面时,这称为:
GET http://localhost:8080/mycontext/app/crud/myapp/foo/form/form.xhtml
这次表单名称是正确的,但我希望改为/ search / ...。不过我尝试使用xform xml或查询结果都没有成功。
答案 0 :(得分:1)
对/crud/myapp/library/form/form.xhtml
的调用是正常的:Form Runner不会加载表单,而是加载特定于应用程序的section templates库,该库存储在保留的{{1}中表单名称。因此,很可能您的持久性API实现应返回404,因为它没有library
形式。
当您访问myapp/library
的新页面时,对/crud/myapp/foo/form/form.xhtml
的查询,这只是加载myapp/foo
的表单定义的Form Runner。搜索API的查询仅由摘要页面完成,以列出特定表单的数据。