public class JSBindings extends SimpleBindings{
public void bind(String key, Object value){
this.put(key, value);
}
}
我将 JSBindings 的实例传递给ScriptEngine.eval(script, bindings)
我的代码。但是,我只能将 java 对象绑定(放置)到 SimpleBindings。如何从 java 代码绑定全局 javascript 函数?
IE
bind("UTILS", new SomeJavaObject()) //works fine..
但我想绑定javascript函数。也许是这样的:
bind("list", "function(){return new java.util.ArrayList()}")
//doesn't work.. list is just a string
所以当我list()
在我的 javascript 中说时,它必须调用这个绑定函数并创建一个 ArrayList 的实例。是否可以通过 SimpleBindings 实例以这种方式绑定 javascript 函数?