有一种聪明的方法如何在Xpages应用程序之间共享自定义控件?

时间:2013-06-13 13:23:04

标签: xpages

对于我们的Xpages应用程序堆栈,我们必须创建cca。 100个控件将涵盖我们的新UI部件/帮助程序和一些其他服务。这些控件非常通用,必须由许多Xpages应用程序使用。现在的问题是如何在应用程序(数据库)之间共享这些控件。控件需要一些托管bean才能工作,还需要一些CSS,JS和图像。将整个内容复制到每个应用程序中并以某种方式维护它不是方法(即使设计继承在这里也没有帮助)。更重要的是......在应用程序特定控件之间混合使用这100个控件真是太糟糕了,因为控件不支持任何命名空间或某些包分组(比如Package Explorer中的java),所以最后我们在DDE中有很长的控件列表是导航和工作的噩梦。

我们尝试使用扩展库方法并遵循本教程

http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Master_Table_of_Contents_for_XPages_Extensibility_APIs_Developer_Guide

...但老实说,我从头开始在我的计算机上尝试了3次,甚至教程中的示例项目也没有正常工作,但仍然在更新站点项目中引起了一些错误。我的同事也在他的电脑上试了这个,没有运气。并且上面文章中描述的整个过程设置了许多java类,XML和配置文件,即使是小控件(eclipse插件项目 - >功能项目 - >更新的站点项目,然后你必须安装此更新站点测试它当发生错误时,你必须运行另一个循环...)。与例如比较这是http://tapestry.apache.org/component-classes.html在Xpages中非常重的方法。

所以我的问题是,有没有其他方法可以帮助我们在这个领域共享应用程序之间的控制?或者,即将发布的Notes版本是否会在此区域中进行任何更新,例如R9.1?

2 个答案:

答案 0 :(得分:5)

共享控件的最有效方式扩展库。它确实带有学习曲线。您可以使用Nathan的XSP入门套件来缓解您的痛苦。或者,您可以使用OpenNTF中的导入/导出插件来移动控件(及其支持文件)。

在任何情况下:XPages自定义控件执行支持名称空间和分组 - >只需看一下控件的属性面板。您可以定义:

  • 命名空间(默认为xc,但您可以自由设计)
  • 该组应出现在
  • 图标
  • 它如何看待设计时间(隐藏内部工作方式)

因此,第1步是分组和清理,然后考虑分发。 Extlib绝对是最好的。

答案 1 :(得分:-1)

在NSF中共享设计元素有很好的方法:模板。您可以将数据库设为模板,然后通过在设计器级别复制/粘贴它们来继承特定的设计元素。在设计元素的属性视图“设计”选项卡中,查找“从设计模板继承”属性。它包含从中复制元素的模板名称。注意属性“禁止设计刷新或替换以修改”,它应该关闭。

但是,在将应用程序部署到生产环境时会产生一些影响,请阅读有关模板继承的文档/帮助。特别是与XPages /自定义控件的组合需要构建和签名模板。

我们使用它来共享自定义控件,如应用程序布局和选项列表,没有任何问题。