将Java对象从JavaScript发送到Applet

时间:2012-11-30 11:16:59

标签: java javascript applet liveconnect

如何将Java对象从JavaScript发送到Java? LiveConnect允许我们通过调用applet方法获取Java对象。即我们可以在applet中使用以下方法:

public MyClass getMyClass() { return new MyClass(); }`

其中MyClass是:

public class MyClass implements Serializable {
   private String a;
   private String b; //getters, setters
}

并在JS中使用以下方法访问此对象:

applet.getMyClass().someMethod();

但是如何将对象从JavaScript(我认为的json对象)传递给java方法(而不是json字符串)?即我想要这样的applet方法:

public void myMethod(MyClass var)

并且从JavaScript调用此方法传递类型MyClass的参数。如何在JS中构建MyClass对象?我希望LiveConnect自动从JSON转换为Java对象。

2 个答案:

答案 0 :(得分:2)

我相信这应该会让你对如何解决这个问题有所了解。

import netscape.javascript.*;

public class MyClass implements Serializable {
public String a;
public String b;

    public JavaDog(JSObject o) {
        this.a= (String)o.getMember("a");
        this.b = (String)o.getMember("b");
    }
}

然后使用new Packages.MyClass(yourJavaScriptObject)创建要传递给Java的对象。

此处提供更多信息:

https://developer.mozilla.org/en-US/docs/JavaScript/Guide/LiveConnect_Overview

答案 1 :(得分:0)

Java LiveConnect文档说:

当一个以前返回给JavaScript的Java对象时 将引擎传递回Java,只需检查对象 赋值与目标类型的兼容性。唯一的例外 此规则会自动转换为java.lang.String