|
|
脚本引擎集成指南 |
|
1. 脚本引擎框架说明
javax.script是JDK标准的脚本引擎接口,为各种脚本引擎统一入口。
详细请参见:http://java.sun.com/javase/6/docs/api/javax/script/package-summary.html
命令行脚本执行工具:http://java.sun.com/javase/6/docs/technotes/tools/share/jrunscript.html
如果使用JDK1.6以前的版本,需JSR223支持:http://www.jcp.org/en/jsr/detail?id=223
2. 集成方式
导入集成jar包: commontemplate-javaxscript.jar 下载...
此jar包采用javax.script所规定的方式打包,JDK将自动发现其中的引擎实现。
3. 调用方式
(1) 模板引擎调用方式:
// 导入脚本引擎库
import javax.script.*;
// 创建脚本引擎管理器
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
scriptEngineManager.put("name", "value"); // 设置全局变量
// 获取模板脚本引擎
ScriptEngine templateScriptEngine = scriptEngineManager.getEngineByName("commontemplate");
// 或者: ScriptEngine templateScriptEngine = scriptEngineManager.getEngineByExtension("ctl");
// 或者: ScriptEngine templateScriptEngine = scriptEngineManager.getEngineByMimeType("text/ctl");
templateScriptEngine.put("name", "value"); // 设置执行变量
String result = (String)templateScriptEngine.eval("$for{user : users} ${user.name} $end"); // 执行模板
|
(2) 表达式引擎调用方式:
// 导入脚本引擎库
import javax.script.*;
// 创建脚本引擎管理器
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
scriptEngineManager.put("name", "value"); // 设置全局变量
// 获取表达式脚本引擎
ScriptEngine expressionScriptEngine = scriptEngineManager.getEngineByName("commonexpression");
// 或者: ScriptEngine expressionScriptEngine = scriptEngineManager.getEngineByExtension("cel");
// 或者: ScriptEngine expressionScriptEngine = scriptEngineManager.getEngineByMimeType("text/cel");
expressionScriptEngine.put("name", "value"); // 设置执行变量
Integer result = (Integer)expressionScriptEngine.eval("user.coins + 2 * inc"); // 执行表达式
|
|
|
|