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



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

你能对Xpages和自定义控件设计元素做同样的事情吗?

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

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

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

然而,访问设计元素是容易的部分。创建/重命名/更改等是一个大得多的任务。

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

  1. XPages和自定义控件也有。xsp。元数据文件,您将在源代码控制中看到。
  2. 自定义控件也将有(并且需要)一个.xsp-config文件。
  3. 本地源文件夹中的每个XPage和自定义控件都有相应的.java文件。它们是由构建器基于解析XML创建的。我不认为你能通过编程来创建这些。我不确定重命名它们的影响。
  4. 对于自定义控件,即使您可以重命名.java文件,它也会在相关xpage的.java文件中被引用。更新这些将是一项重大任务。
  5. XPages运行时甚至不使用那些.java文件。相反,它使用WebContentWEB-INF中的.class文件(您需要使用Project Explorer视图并修改过滤器以查看这些文件)。这是编译的字节代码,因此,据我所知,您将无法为包含重命名的自定义控件的XPages更新.class文件。
  6. 即使您可以重命名.class文件,XPages运行时几乎肯定不会使用它们,直到Clean(它将覆盖您所做的任何事情)或HTTP重新启动。据我所知,它们被缓存了。

根据您的用例,可能不是所有这些点都是一个问题,例如,如果您正在修改XML文件并使用headless设计器构建。

我怀疑这就是为什么没有添加到NoteCollection对象或添加特定的NotesXPage/NotesCustomControl API类的原因。

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

这只是部分正确的。有一个LS API来创建/更改视图和轮廓。祝你在其他设计元素上好运——尽管它们是标准的"注释",所以你可以访问它们的项,但在大多数情况下你不会编译它们,而且签名会有一些问题(使用TeamStudio CIAO的真实经验)。

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

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

要丰富应用程序,不需要更改源设计元素。IBM Designer将源代码中的XML转换为Java代码(JSF框架)—因此您可以从任何您想要的东西生成Java代码。在Package explorer中查看NSF的Localxsp文件夹。您将发现由XPages和自定义控件生成的Java源代码。因此,如果您不需要使用设计元素,请使用Java组件——它们可以动态构建。

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

最新更新