2013-08-03 2 views
-3

나는 자바 스크립트와 자바 프로그래밍의 초보자이다. 나는 updateInfo() 함수를 가진 .java 파일을 가지고있다. 내 .js 파일에서 해당 함수를 호출하고 싶습니다. 어떻게해야합니까? 도와주세요. 감사!!!.js 파일의 .java 파일에서 함수 호출하기

+1

Java는 JavaScript와 같지 않습니다. 일반 코드 ('.java' 파일)에서 메소드를 호출 할 수 없으므로 먼저 컴파일해야합니다. – BackSlash

+0

나에게 샘플 코드를 보여줄 수 있습니까? 부디. – achll

+0

[(J) 애플릿을 사용하지 않는 한] (http://docs.oracle.com/javase/tutorial/deployment/applet/invokingAppletMethodsFromJavaScript.html) – BackSlash

답변

0

먼저 자바가 항아리로 컴파일되어 있는지 확인이 있습니다

당신은 netscape.javascript.*

예 HTML과 자바 스크립트 함수를 호출 할 수 있습니다 (그리고 확장/JApplet에 애플릿)

<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> 

예 자바 구현 :

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

More information about invoking java methods from javascript

+2

코멘트 : _ 가능한 jsp를 사용하고 있습니다 ._ 나는 OP가 AJAX 솔루션을 찾고 있다고 생각합니다. – BackSlash

0

자바 스크립트에서 자바 메소드를 직접 호출 할 수 없습니다. Java 코드가 컴파일되어 있는지 어떤지를 나타냅니다.

+0

_Equals 자바 코드가 컴파일되었는지 여부 (not_ ** False). ** Java 코드가 컴파일되어 애플릿으로 실행되는 경우 [JS에서 애플릿 메소드 호출을위한 Oracle 자습서] (http://docs.oracle.com/javase/tutorial/deployment/applet/invokingAppletMethodsFromJavaScript .html) – BackSlash

+0

상황에 따라 다릅니다. Rhino에서 서버 측에서 JavaScript를 실행하는 경우 JavaScript에서 Java를 호출 할 수 있습니다. – Pointy

0

자바 스크립트로 자바 코드를 바인딩하려면 먼저 Applet을 만들어야합니다. 만 후, 여러 JavaScript from Applet을 호출하는 기술과 그 반대의 경우도 마찬가지

1

More information about invoking javascript from java

, 당신이 할 수 있지만 직접.

하나의 옵션은 Apache CXF 또는 Jersey과 같은 JAX-RS 구현을 사용하는 것입니다. Java 파일의 메소드에 매핑되는 RESTful 웹 서비스를 만들었 으면 JavaScript를 사용하여 AJAX 호출을 만들 수 있습니다. 따라서 RESTful 웹 서비스 형태로 JavaScript를 통해 Java 메소드를 호출 할 수있다.

관련 문제