如何将脚本库添加到XPage自定义Java控件

时间:2013-03-27 15:53:38

标签: javascript jsf xpages lotus-notes

我正在尝试按照IBM(LINK)上的指南在XPage中开发自己的Java自定义控件。

一切正常但现在我想做一些我想使用jQuery库的客户端JavaScript。在XPage中包含jQuery.js不是很多,但我想将我的控件打包在一个库中,以便我们公司的每个开发人员都可以使用它。

所以我的问题是我如何将JavaScript集成到控件中,以便使用它的人不必手动在Notes Application中实现JavaScript。

当然,我可以把它放到渲染中:

writer.startElement("script", null);
writer.writeAttribute("type", "text/javascript", null);
writer.writeText(JQuery-js-content, null);
writer.endElement("script");

但是当用户打开包含控件的XPage时,服务器总是会呈现它。

从网络或服务器加载jQuery是没有选择的(防火墙)。

每当开发人员从面板中拖动jQuery被添加到Notes应用程序中时,我正在寻找的解决方案就是一个解决方案。

更新

感谢提示,我找到了“最适合我”的解决方案。我使用扩展库ExtLibResources中的com.ibm.xsp.extlib.resources.ExtLibResources类来包含我的脚本库。使用这种方法,当您在同一XPage上使用多个控件时,它们将不会被包含多次。

如果您不想使用扩展库,但想要使用此方法在自定义控件中包含CSJS,则可以构建自己的资源类。

现在我的代码包含jQuery看起来像这样:

ScriptResource jquerymin = new ScriptResource();
jquerymin.setType("text/javascript");
jquerymin.setSrc(JQUERY_PATH);
jquerymin.setClientSide(true);
ExtLibResources.addEncodeResource(context, jquerymin);

2 个答案:

答案 0 :(得分:2)

在OpenNTF上查看此项目。一个jQuery Ext。图书馆。我怀疑这是你需要做的。

http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=jQuery%20Extension%20Library

答案 1 :(得分:0)

不是自己添加库就不可能使用CDN添加jquery库吗?