我想知道Orbeon Forms在Liferay中是如何工作的,因为Web Forms portlet非常有限,所以我访问了Orbeon的网站并阅读了它的文档。然后我下载它并在Tomcat服务器中运行,我使用Form Builder构建了一个表单,然后使用Form Runner进行了尝试。
我的问题是,如何导出我使用表单生成器创建的表单之一,以将其作为portlet包含在Liferay中?那可能吗?我可以将表单导出到WAR中,然后将其部署到Liferay中吗?
我知道您可以将Orbeon Forms部署到liferay中,但我只想包含一个特定的表单,而不是所有使用表单生成器的应用程序,示例等。
有人可以帮助我吗?
答案 0 :(得分:3)
首先,澄清一下:如果您只是想要“形式”,仅仅是XHTML,那就无法使用,因为任何使用Orbeon Forms构建的表单都需要运行时才能运行。如果使用表单生成器创建表单,则表示表单运行时运行时。无论哪种方式,您都需要一个Orbeon Forms portlet或servlet。
您创建的表单在发布时会存储到数据库中。默认情况下,这是内置的eXist XML数据库,但您可以使用Oracle,MySQL或自定义持久层。
为了在Liferay中查看表单,您有两种可能性:
我建议您仔细阅读这两页。
它的工作原理取决于您使用的portlet类型。
如果使用代理portlet,那么portlet非常轻量级,只是将请求转发给运行Form Runner运行时的单独webapp。您将portlet配置为指向特定表单。
如果使用完整的portlet,则Form Runner直接作为portlet运行。在这里,portlet将加载登录页面,您可能希望修改该登录页面以指向您希望用户看到的表单。
在这两种情况下,只要Form Runner指向正确的数据库,就会找到您发布的表单。
在您的情况下,似乎代理portlet可能是您的最佳选择。请注意,自3.9以来,代理portlet已经发生了很多错误修复,因此我建议每晚构建一次。这里的参考是source of the proxy portlet。