2012-02-29 65 views
0

我正在研究一個Java程序,其中一個對象需要具有用戶自定義一個函數的行爲。我正在使用Mozilla Rhino,JavaScript和Java來實現這一點。如何使用Rhino將對象從Java傳遞到JavaScript

我不知道如何把已經實例化的對象,並將其傳遞給預先寫好的腳本。

我已經瀏覽了很多關於Rhino的教程,並沒有給出這樣的例子。任何建議或鏈接將不勝感激。

謝謝你的時間。

回答

0

This answer到另一個問題通過一個對象,data,從Java到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。)

相關問題