简体   繁体   English

将 Java 对象从 JavaScript 发送到 Applet

[英]Send Java object from JavaScript to Applet

How I can send Java object from JavaScript to Java?如何将 Java 对象从 JavaScript 发送到 Java? LiveConnect allow us to get Java objects from calling applet method. LiveConnect 允许我们通过调用小程序方法来获取 Java 对象。 ie we can have following method in applet:即我们可以在小程序中有以下方法:

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

where MyClass is: MyClass在哪里:

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

and in JS access this objects using:并在 JS 中使用以下方法访问此对象:

applet.getMyClass().someMethod();

But how I can pass object from JavaScript (json object I think) to java method (not as json string)?但是如何将对象从 JavaScript(我认为是 json 对象)传递给 java 方法(而不是 json 字符串)? ie I want to have in applet method like this:即我想要这样的小程序方法:

public void myMethod(MyClass var)

and from JavaScript call this method passing parameter of type MyClass .并从 JavaScript 调用此方法传递MyClass类型的参数。 How to build MyClass object in JS?如何在 JS 中构建MyClass对象? I hope LiveConnect do conversion from JSON to Java object automatically..我希望 LiveConnect 能够自动从 JSON 转换为 Java 对象。

I believe this should give you a good idea about how to go about this.我相信这应该让你对如何去做这件事有一个好主意。

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");
    }
}

Then you use new Packages.MyClass(yourJavaScriptObject) to create the object you want to pass to Java.然后使用new Packages.MyClass(yourJavaScriptObject)创建要传递给 Java 的对象。

More information here:更多信息在这里:

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

Java LiveConnect documentation says : Java LiveConnect文档说:

When a Java object which was previously returned to the JavaScript engine is passed back to Java, the object is simply checked for assignment compatibility with the target type.当先前返回给 JavaScript 引擎的 Java 对象被传递回 Java 时,只需检查该对象与目标类型的赋值兼容性。 The only exception to this rule is automatic conversion to java.lang.String .此规则的唯一例外是自动转换为java.lang.String

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

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