一尘不染

在javascript代码中调用Java方法

java

我创建了一个Java类内容方法,返回一个String,我的问题是如何在我的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方法的方法,并且像您说的那样找到了applet,但是我认为它对我没有用。再次感谢


阅读 407

收藏
2020-03-25

共1个答案

一尘不染

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

  • 创建一个Web服务(例如,使用Tomcat)
  • 从JavaScript调用其URL(例如,使用JQuery或dojo)
    当Java代码位于applet中时,你可以使用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>
2020-03-25