2011-07-05 39 views
2

试图Orbeon 3.9 CE使用Grails 1.3.7集成,使用此处指定推荐的独立战争的部署方法: http://wiki.orbeon.com/forms/doc/developer-guide/xforms-with-java-applications如何正确整合Orbeon和Grails?

其创建的形式和Orbeon窗体生成器观察后,我把生成的XML的意见/ xforms目录下的Grails应用程序的根目录下,并调用文件test.gsp。我还将窗体徽标的图像文件放在同一个目录中。我创建了一个war文件,并放置在部署了orbeon.war的Tomcat 7的实例中。当我调用test.gsp时,表单显示无图像文件或XForm中指定的任何标签!

  1. 为什么所有标签都不能渲染?
  2. 我应该在哪里放置图像文件等资源以使其显示?

谢谢!

回答

0

所有静态文件,如图像,必须放置在web-app/*/ dir,并使用<g:resource>标记链接。

例如,对于图像,你必须把你的形象(“test.png”)成web-app/images/和使用按照您的GSP代码:<img src="${resource(dir:'/images/settings', file:'test.png')}">

见文档此标记:http://grails.org/doc/latest/ref/Tags/resource.html

3

我建议你不要使用Form Builder生成表单,并将源复制到其他地方。它看到3个主要缺陷:

  1. 表单生成器生成的某些元素应该由Form Builder运行时解释;因此Orbeon Forms在您的代码生成时不会被Orbeon Forms所理解。我在想fr:view,fr:section等等。
  2. 用于持久性,国际化,PDF生成的表单Runner服务很可能不起作用。
  3. 复制粘贴过程本身不被推荐。

单独部署假定您使用的是另一个框架,并且您将在文本编辑器中编写XForms,而Form Builder则针对“表单编写者”(不一定是开发人员);它使用自己的运行时需要请求Orbeon Forms,也就是那些以/fr开头的URL。

+0

感谢您的见解!但我们确实希望允许非开发人员开发这些表单。有没有可以用来实现这一目标的工作流程? – user830208

+1

您可以采用由Form Builder生成的代码,并在将输出发送到Orbeon Forms之前编写解释fr:*标记的JSP taglib,并用HTML替换它们。这似乎是可行的,但它是一个独立的项目。您也可以将表单保留在Orbeon网络应用中,并使用iframe或服务器端包含将其包含在您的页面中。前者很简单,但有iframes的缺点;后者更复杂,因为您需要确保资源(图像,CSS,JS)得到正确处理,并且该Ajax请求已正确转发到Orbeon Web应用程序。 – avernet

+0

我应该补充说,如果您使用的是2011年5月25日或之后的每晚构建,那么您的单独应用程序可以生成Form Runner元素,并且它们将被Form Runner正确解释。因此,每晚构建,你可能会更接近你想要做的事情。换句话说,每晚的建筑应该注意上面的第1点。 – avernet