2012-02-29 2 views
0

하나의 함수에 대해 사용자 정의 동작이 필요한 Java 프로그램에서 작업하고 있습니다. Mozilla Rhino, JavaScript 및 Java를 사용하여 구현하고 있습니다.Rhino를 사용하여 Java에서 JavaScript로 JavaScript를 전달하는 방법

이미 인스턴스화 된 객체를 가져 와서 미리 작성된 스크립트로 전달하는 방법을 알 수 없습니다.

저는 Rhino에 대한 많은 자습서를 살펴 봤습니다. 모든 조언이나 링크는 크게 감사하겠습니다.

감사합니다.

답변

0

This answer 다른 질문에 대해서는 data, 자바에서 Rhino Javascript로 전달됩니다.

나는 그것이 잘 작동하는지 잘 모른다. 다음은 관련 부분은 다음과 같습니다

public static class data { 
    Double value = 1.0d; 
} 

ScriptEngine engine = new ScriptEngineManager().getEngineByName ("rhino"); 
data data = new data(); 
Context.enter().getWrapFactory().setJavaPrimitiveWrap(false); 

engine.eval("function test(data) { return data.get('value1') + 5;};"); 
System.out.println("Result:" + ((Invocable)engine).invokeFunction("test", data)); 

(나는, 그 setJavaPrimitiveWrap()에 대해 here is some WrapFactory Javadoc을 몰랐다.)