【发布时间】:2013-03-27 15:53:37
【问题描述】:
我正在尝试按照 IBM (LINK) 上的指南在 XPage 中开发自己的 Java 自定义控件。
一切正常,但现在我想做一些我想使用 jQuery 库的客户端 JavaScript 事情。在 XPage 中包含 jQuery.js 并不是什么大问题,但我想将我的控件打包到一个库中,以便我们公司的每个开发人员都可以使用它。
所以我的问题是如何将 JavaScript 集成到控件中,这样使用它的人就不必在 Notes 应用程序中手动实现 JavaScript。
当然,我可以将其放入渲染中:
writer.startElement("script", null);
writer.writeAttribute("type", "text/javascript", null);
writer.writeText(JQuery-js-content, null);
writer.endElement("script");
但是当用户打开一个包含该控件的 XPage 时,服务器必须始终呈现它。
无法从 Web 或服务器加载 jQuery(防火墙)。
每当开发人员从面板中拖动组件时,我正在寻找的解决方案将 jQuery 添加到 Notes 应用程序中。
更新:
感谢您的提示,我找到了“最适合我”的解决方案。我使用扩展库 com.ibm.xsp.extlib.resources.ExtLibResources 中的 ExtLibResources 类来包含我的脚本库。使用这种方法,当您在同一个 XPage 上使用多个我的控件时,它们不会被多次包含。
如果您不想使用扩展库,但想使用此方法在自定义控件中包含 CSJS,您可以构建自己的资源类。
现在我包含 jQuery 的代码如下所示:
ScriptResource jquerymin = new ScriptResource();
jquerymin.setType("text/javascript");
jquerymin.setSrc(JQUERY_PATH);
jquerymin.setClientSide(true);
ExtLibResources.addEncodeResource(context, jquerymin);
【问题讨论】:
标签: javascript jsf xpages lotus-notes