Java脚本教程 – Java脚本绑定
绑定是一组键/值对,键必须是非空的非空字符串。
Java Bindings是Bindings接口的一个实例。
SimpleBindings类是Bindings接口的一个实现。
Bindings接口继承了 Map< String,Object>
接口。
绑定是一个映射,限制其键必须是非空的非空字符串。
例子
import javax.script.Bindings; import javax.script.SimpleBindings; public class Main { public static void main(String[] args) { Bindings params = new SimpleBindings(); params.put("stringKey", "Hello"); params.put("valueKey", 2015); Object msg = params.get("stringKey"); Object year = params.get("valueKey"); System.out.println("stringKey" + msg); System.out.println("valueKey = " + year); params.remove("valueKey"); year = params.get("valueKey"); boolean containsYear = params.containsKey("valueKey"); System.out.println("valueKey = " + year); System.out.println("params contains year = " + containsYear); } }
上面的代码生成以下结果。
例2
要将参数从Java代码传递到脚本引擎,请使用ScriptEngine接口中的createBindings()方法,该方法返回Bindings接口的实例。
import javax.script.Bindings; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class Main { public static void main(String[] args) { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("JavaScript"); Bindings params = engine.createBindings(); params.put("stringKey", "Hello"); params.put("valueKey", 2015); Object msg = params.get("stringKey"); Object year = params.get("valueKey"); System.out.println("stringKey" + msg); System.out.println("valueKey = " + year); params.remove("valueKey"); year = params.get("valueKey"); boolean containsYear = params.containsKey("valueKey"); System.out.println("valueKey = " + year); System.out.println("params contains year = " + containsYear); } }
上面的代码生成以下结果。
引擎范围绑定的保留键
通常,引擎范围Bindings中的键表示脚本变量。
下表列出了具有特殊含义的保留键。
键 | 常量 | 含义 |
---|---|---|
“javax.script.argv” | ScriptEngine.ARGV | 传递Object的数组 |
“javax.script.engine” | ScriptEngine.ENGINE | 脚本引擎的名称 |
“javax.script.engine_version” | ScriptEngine.ENGINE_VERSION | 脚本引擎的版本 |
“javax.script.filename” | ScriptEngine.FILENAME | 传递文件的名称 |
“javax.script.language” | ScriptEngine.LANGUAGE | 语言的名称 |
“javax.script.language_version” | ScriptEngine.LANGUAGE_VERSION | 引擎支持的脚本语言的版本 |
“javax.script.name” | ScriptEngine.NAME | 脚本语言的短名称 |