Java 到 JavaScript 数组的转换

来源:互联网 发布:linux怎么telnet网页 编辑:程序博客网 时间:2024/05/06 20:28

GWT 开发文档提示说必须慎重使用 JSNI ,因为不能保证浏览器的可移植性,而且编译代码的优化是有限制的。至于商业控件,您可以依赖供应商的承诺来支持多个浏览器类型和部署平台。

当从 JSNI 访问浏览器窗口和文档对象时,必须将其分别作为 $wnd$doc 加以引用。而所编译的脚本则在嵌套的框架中运行,$wnd$doc 会自动初始化以正确指代宿主页面的窗口和文档。

示例代码展示了一种很好的技巧,即使用 JSNI 来将一维或二维的 Java 字符串数组转换成 JavaScript 数组,以便于用数据填充数组,如清单 3 所示:

清单 3. Java 到 JavaScript 数组的转换
public static JavaScriptObject arrayConvert(String[] array) {     JavaScriptObject result = newJSArray(array.length);     for (int i = 0; i<array.length; i++) {       arraySet(result, i, array[i]);     }     return result; } private static native JavaScriptObject newJSArray(int length) /*-{     return new Array(length);  }-*/; public static native int arrayLength(JavaScriptObject array) /*-{     return array.length; }-*/; public static native String arrayGetObject(JavaScriptObject array, int index) /*-{     return array[index]; }-*/; public static native void arraySet(JavaScriptObject array,int index,String value) /*-{     array[index] = value; }-*/;
0 0
原创粉丝点击