0

我正在尝试通过 JSNI 从 GWT 中的 java 函数返回一个值到 javascript

    static public int call() { return 20; }

    public static native int jstest() /*-{
        try{
            val=@com.xxxx.package::call()();
            window.alert("Val:"+val);
            return $wnd.val;
        } catch(e) {
            console.error(e.message);
        }
    }-*/;

在 javascript 中alert(document.val);,我最终得到了 Exception JSNI 方法返回的不是 int 的东西。我想我在将值返回给 javascript 时搞砸了。请让我知道我哪里出错了!

4

1 回答 1

4

通过将 val 声明为全局,它确实被分配到了 window 对象(注意:不是 $wnd 对象)。有时使用 GWT,这两个是相同的,有时它们不是(这取决于您使用的链接器)。

这就是为什么你需要改变你的代码来阅读

$wnd.val = @com.xxxx.package::call()();

或删除全局变量:

var val = @com.xxxx.package::call()();
return val;
于 2012-08-07T09:35:06.620 回答