使用ScriptEngine从java代码绑定全局javascript函数

时间:2013-07-25 12:51:44

标签: java javascript rhino

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函数?

bind("UTILS", new SomeJavaObject()) //works fine..

但我想绑定javascript函数。也许是这样的:

bind("list", "function(){return new java.util.ArrayList()}") //doesn't work.. list is just a string

所以当我在我的javascript中说list()时,它必须调用这个bind函数并创建一个ArrayList实例。是否可以通过这种方式从SimpleBindings实例绑定javascript函数?

0 个答案:

没有答案