java - 将 Java 对象从 JavaScript 发送到 Applet

标签 java javascript applet liveconnect

如何将 Java 对象从 JavaScript 发送到 Java? LiveConnect 允许我们通过调用 applet 方法来获取 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 - 将 Java 对象从 JavaScript 发送到 Applet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13644172/

相关文章:

javascript - ionic.bundle.js :25642 Error: [$injector:unpr] Unknown provider: $cordovaGeolocationProvider <- $cordovaGeolocation <- AgeCtrl

javascript - NestJS 从 ExceptionFilter 抛出

javascript - 有没有一种优雅的方法可以在 foreach() 之后链接 join() ?

java - 从java内部访问javascript

java - 为什么java类字段(和事件处理程序字段)不会在android对话框和自定义 View 中初始化?

java - 使用 Java (OSX) 在终端中调用命令

java - 与客户端 PC 上的 MS Office 通信

java - 如何在 Java Swing 中从另一个组件接收事件/将事件转发到另一个组件

java - 在 Java、AWT 中,repaint-method 似乎被忽略以支持 start-method

java - 为什么这个 java applet 代码没有获取每个 MouseClicked 事件?