-1

我是 javascript 和 java 编程的新手。我有一个带有函数 updateInfo() 的 .java 文件。我想在我的 .js 文件中调用该函数。我怎样才能做到这一点?请帮忙。谢谢!!!

4

4 回答 4

1

是的,你可以,但不能直接。

一种选择是使用 JAX-RS 实现,例如Apache CXFJersey。创建映射到 Java 文件中的方法的 RESTful Web 服务后,您可以使用 JavaScript 进行 AJAX 调用。因此,您当然可以通过 JavaScript 以 RESTful Web 服务的形式调用 Java 方法。

于 2013-08-03T17:40:04.773 回答
0

您不能直接从 JavaScript 调用 java 方法。等于 java 代码是否已编译。

于 2013-08-03T17:27:28.290 回答
0

首先确保你的java被编译成jar(并且扩展了applet/japplet)

您可以调用javascript函数netscape.javascript.*

示例 HTML

<head>
<title>Data Summary Applet Page - Java to JavaScript LiveConnect</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<script language="javascript">
    var userName = "";

    // returns number
    function getAge() { 
        return 25;
    }
    // returns an object
    function address() { 
        this.street = "1 Example Lane";
        this.city = "Santa Clara";
        this.state = "CA";
    }
    // returns an array
    function getPhoneNums() { 
        return ["408-555-0100", "408-555-0102"];
    } 
    function writeSummary(summary) {
        summaryElem =
            document.getElementById("summary");
        summaryElem.innerHTML = summary;
    }
    </script>

    <!-- ... -->      
</head>
<body>
    <script src =
      "http://www.java.com/js/deployJava.js"></script>
    <script> 
        <!-- ... -->
        deployJava.runApplet(attributes, parameters, '1.6'); 
    </script>          
    <!-- ... -->
    <p id="summary"/>  // this HTML element contains
                             // the summary 
    <!-- ... -->
</body>

示例java实现:

package javatojs;

import java.applet.Applet;
import netscape.javascript.*; // add plugin.jar to classpath during compilation

public class DataSummaryApplet extends Applet {
    public void start() {
        try {
            JSObject window = JSObject.getWindow(this);

            String userName = "John Doe";

            // set JavaScript variable
            window.setMember("userName", userName);

            // invoke JavaScript function
            Number age = (Number) window.eval("getAge()");

            // get a JavaScript object and retrieve its contents
            JSObject address = (JSObject) window.eval("new address();");
            String addressStr = (String) address.getMember("street") + ", " +
                    (String) address.getMember("city") + ", " +
                    (String) address.getMember("state");

            // get an array from JavaScript and retrieve its contents
            JSObject phoneNums = (JSObject) window.eval("getPhoneNums()");
            String phoneNumStr = (String) phoneNums.getSlot(0) + ", " +
                    (String) phoneNums.getSlot(1);

            // dynamically change HTML in page; write data summary
            String summary = userName + " : " + age + " : " +
                    addressStr + " : " + phoneNumStr;
            window.call("writeSummary", new Object[] {summary})   ;
        } catch (JSException jse) {
            jse.printStackTrace();
        }
    }
}

有关从 java 调用 javascript 的更多信息

有关从 javascript 调用 java 方法的更多信息

于 2013-08-03T17:38:44.690 回答
0

要将 Java 代码与 JavaScript 绑定,您必须创建第一个Applet。只有在这之后,才有几种技术可以从 Applet 调用 JavaScript,反之亦然

于 2013-08-03T17:33:27.730 回答