我将javascript表达式嵌入到我的java编程中,如下所示 Putting a simple expression language into java
但我现在意识到我需要直接使用Rhino而不是ScriptEngine,因为我需要保留Java 1.5 compatabiliy,我想我可以将评估作为folllows来运行
Context context = Context.enter();
try {
Scriptable scope = context.initStandardObjects();
String result = context.evaluateString(scope, expr, null, 0, null);
return result
} finally {
Context.exit();
}
但是有什么替代
jsEngine.put(fieldname.getScriptVariable(), value);
将值映射到变量
答案 0 :(得分:0)
如果你必须与java 1.5兼容,至少要使用来自Jakarta项目的BSF框架。它类似于java 1.6中引入的java脚本框架
答案 1 :(得分:0)
我认为您需要做的是以下内容:
Object wrappedObject = Context.javaToJS(yourObjectHere, scope);
ScriptableObject.putProperty(scope, "yourVariableNameHere", wrappedObject);
请参阅Expose Java APIs Rhino示例。