JavaScript リソースがあり、Rhino Script Engine を適用して Java 側からメソッドを呼び出します。
(function( global ){
var Result;
(Result = function( val ) {
this.tpl = val || '' ;
}).prototype = {
get: function ()
{
return this.tpl ;
}
};
} ( window ) ) ;
これは私が Java 側で行った方法ですが、上記のスクリプトで get メソッドを呼び出すにはどうすればよいですか?
@Test
public void testCallJSMethod() throws Exception {
String jsResource = getJSResource();
jsEngine.put("window", "window");
jsEngine.put("window.Result", "Result");
jsEngine.eval(jsResource);
Invocable inv = (Invocable) jsEngine;
Object obj = jsEngine.get("window.Result");
assertEquals(true, obj != null);
//try to call get method in above script, but it doesn't work
inv.invokeMethod(obj, "get", new Object[] {} );
}