开发xpages的库控件

时间:2012-07-03 13:07:27

标签: jsf xpages xpages-extlib

我正在为Xpages开发一个库控件,需要一些帮助来创建。

我会创建一个控件来读取配置文件并在表格中创建控件,控件如Editboxes,checkboxgroups等等。

所以现在我的问题:

我可以从Exlib启动控件,还是我必须自己实现它们?

如果我可以在Exlib中使用它们,有人可以解释我怎么做?

我希望明确我的意思,如果没有,请向我询问进一步的信息。

1 个答案:

答案 0 :(得分:2)

创建自己的组件时,如果您正在仔细复制扩展库组件中已有的某些行为,我强烈建议您扩展该组件,只需添加所需的内容以适应不同的功能。这使事情变得更加容易,并且您不必围绕组件可能放置的每个小方案进行编码。

但是,如果您正在开发一个与任何扩展库或核心组件完全不同的组件,那么只需确保您的组件扩展UIComponent或UIComponentBase。如果走这条路线,你还需要创建自己的渲染器,扩展渲染器。这将构建组件的屏幕表示。同样,如果核心组件或扩展库组件中的某些内容与您需要的内容非常相似,那么请使渲染器扩展该渲染器。另外,不要忘记在faces-config文件中包含渲染器定义,在xsp-config文件中包含组件定义,否则组件将无效。

至于从extlib启动控件....我假设你的意思是你可以在运行时将它们注入页面。如果是这样,答案绝对是肯定的。将输入文本字段添加到具有ID为“someContainer”的容器(即panel,div,span等)的页面

XspInputText input = new XspInputText();
input.setValue("someValue");
input.setId("someID");
UIComponent container =  FacesContext.getCurrentInstance().getViewRoot().findComponent("someContainer");
container.getChildren().add(input);

要查看所有核心和扩展库组件的api,请查看XPages Controls Documentation。有关创建自己的组件的更完整教程,请查看我的博客,以便在nsf中创建自定义组件,将它们放入库中的步骤几乎相同: Part 1Part 2并且第2部分帖子中有一个示例数据库。