在 javascript 代码中调用 java 方法 [已关闭]

2022-09-02 04:21:25

我创建了一个java类内容方法返回一个字符串,我的问题是如何在我的javascript代码中调用这个函数来使用java方法的返回值。我想调用嵌入在浏览器中的客户端 Java 代码。

以下是我所谈论的一个例子:

在我的网页中,我有一个javascript代码,这里有一些:

    function createChartControl(htmlDiv1)
{
    // Initialize Gantt data structures
    //project 1
    var parentTask1 = new GanttTaskInfo(1, "Old code review", new Date(2010, 5, 11), 208, 50, "");
......................

我想创建一个java类内容方法,为这个javascript函数“GanttTaskInfo”提供数据。用于示例函数以获取名称,获取id和日期。好吧,我认为这次我很清楚:D我搜索了一种在javascript中调用java方法的方法,我发现了你说的小程序,但我认为它对我来说没有用。再次感谢


答案 1

当它在服务器端时,使用Web服务 - 也许是带有JSON的RESTful。

  • 创建一个 Web 服务(例如使用 Tomcat)
  • 从 JavaScript 调用其 URL(例如使用 JQuery 或 dojo)

当Java代码在小程序中时,您可以使用JavaScript桥接。Java和JavaScript编程语言之间的桥梁,非正式地称为LiveConnect,是在Java插件中实现的。以前特定于Mozilla的LiveConnect功能,例如调用静态Java方法,实例化新Java对象和从JavaScript引用第三方包的能力,现在在所有浏览器中都可用。

下面是文档中的示例。看。methodReturningString

Java 代码:

public class MethodInvocation extends Applet {
    public void noArgMethod() { ... }
    public void someMethod(String arg) { ... }
    public void someMethod(int arg) { ... }
    public int  methodReturningInt() { return 5; }
    public String methodReturningString() { return "Hello"; }
    public OtherClass methodReturningObject() { return new OtherClass(); }
}

public class OtherClass {
    public void anotherMethod();
}

网页和 JavaScript 代码:

<applet id="app"
        archive="examples.jar"
        code="MethodInvocation" ...>
</applet>
<script language="javascript">
    app.noArgMethod();
    app.someMethod("Hello");
    app.someMethod(5);
    var five = app.methodReturningInt();
    var hello = app.methodReturningString();
    app.methodReturningObject().anotherMethod();
</script>

答案 2

Java是一种服务器端语言,而javascript是一种客户端语言。两者都无法沟通。如果您使用 Java 设置了一些服务器端脚本,则可以在客户端上使用 AJAX,以便向其发送异步请求,从而调用任何可能的 Java 函数。例如,如果您使用jQuery作为js框架,则可以查看$.ajax()方法。或者,如果你想使用普通的javascript来做到这一点,这里有一个教程