XPages:有没有办法复制/重命名自定义控件

时间:2015-07-15 21:14:59

标签: xpages xpages-extlib

在Lotuscript中,您可以操作设计元素 - 创建,更改,重命名等等。

您是否能够为Xpages和自定义控件设计元素执行相同的操作?

=============================================== ===================== 我的问题应该更清楚了。我想要完成的是复制现有的cc并以编程方式为其命名。然后该应用程序将关闭并重新打开(或刷新或重建),以便应用程序可以"看到"新cc。如果我复制cc,它只会有一个字段。我稍后会添加自定义代码。我可以创建一个没有代码的新cc,这也可以。

我不熟悉DXL导出器,但我可以研究它。使用它我可以将cc的设计导出到临时目录中的XML文件,使用转换来更改名称,然后导入控件吗?

2 个答案:

答案 0 :(得分:3)

我认为XPage或Custom Control设计元素可能位于NoteCollection中的MISC_CODE或MISC_FORMAT设计元素下。

但是,访问该设计元素很容易。进行创建/重命名/更改等是一项很多更大的任务。

请记住,XPage或自定义控件XML文件只是一个起点:

  1. XPages和自定义控件也有一个.xsp.metadata文件,您将看到源代码管理。
  2. 自定义控件还将具有(并且需要).xsp-config文件。
  3. 本地源文件夹中的每个XPage和自定义控件都有相应的.java文件。它们是由构建器基于解析XML创建的。我不认为你能够以编程方式创建它们。我不确定重命名它们的影响。
  4. 对于自定义控件,即使您可以重命名.java文件,它也会在相关XPage的.java文件中引用。更新这些是一项重要任务。
  5. XPage运行时甚至不使用那些.java文件。相反,它使用WebContent \ WEB-INF中的.class文件(您需要使用Project Explorer视图并修改过滤器以查看这些文件)。这是编译后的字节代码,因此,据我所知,您无法更新包含重命名的自定义控件的XPage的.class文件。
  6. 即使你可以重命名.class文件,XPages运行时几乎肯定不会使用它们直到Clean(它将覆盖你已经完成的任何事情)或HTTP重启。据我所知,他们已经缓存了。
  7. 根据您的使用情况,可能并非所有这些问题都会成为问题,例如:如果您正在修改XML文件并使用无头设计师进行构建。

    我怀疑这就是为什么没有添加任何内容来添加NoteCollection对象或添加的特定NotesXPage / NotesCustomControl API类。

答案 1 :(得分:0)

  

在Lotuscript中,您可以操作设计元素 - 创建,更改,重命名等等。

这只是部分正确。有一个LS API来创建/更改视图和轮廓。祝其他设计元素好运 - 虽然它们是标准的“笔记”,所以你可以访问它们的项目,在大多数情况下你不会编译它们,签名会有一些问题(TeamStudio CIAO的实际经验)。

您的问题有两个观点 - 您是想在设计过程中更改设计元素还是更改正在运行的应用程序?

为了帮助设计人员,您可以采用Eclipse扩展的方式,并在IBM Designer中丰富工具来帮助开发人员。像TeamStudio Designer这样的东西。在这种情况下,您需要查找Paul提到的源设计元素。

要丰富应用程序,您无需更改源设计元素。 IBM Designer将源代码中的XML转换为Java代码(JSF框架) - 因此您可以从任何您希望的任何内容生成Java代码。在Package explorer中查看NSF的Local\xsp文件夹。您将找到由XPage和Custom Controls制作的Java源代码。因此,如果您不需要使用设计元素,请使用Java组件 - 它们可以即时构建。

当然,总有DXL框架的选项 - 因此您可以通过XML转换来克隆/改变应用程序的设计。良好的起点:http://www-10.lotus.com/ldd/ddwiki.nsf/dx/ls-design-programming.htm