繁体   English   中英

将 Java 对象从 JavaScript 发送到 Applet

[英]Send Java object from JavaScript to Applet

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

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 字符串)? 即我想要这样的小程序方法:

public void myMethod(MyClass var)

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

我相信这应该让你对如何去做这件事有一个好主意。

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

Java LiveConnect文档说:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM