直接运行Beetl脚本
Beetl模板本质上会转化为Beetl脚本来执行,这点跟jsp转为servlet来执行类似。GroupTemplate提供方法可以直接执行Beetl脚本
- public Map runScript(String key, Map
paras) throws ScriptEvalError - public Map runScript(String key, Map
paras, Writer w) throws ScriptEvalError - public Map runScript(String key, Map
paras, Writer w, ResourceLoader loader) throws ScriptEvalError key为资源名,paras为脚本的全局变量,w可选参数,如果执行脚本有输出,则输出到w里,loader参数可选,如果指定,则使用此laoder加载脚本
执行脚本完毕后,返回到Map里的值可能包含如下:
- 模板的顶级的临时变量,key为临时变量名
- return 值将返回到map里 ,key为return
如下脚本(此时就不需要脚本定界符了)
var a = 1;
var b = date();
var c = '2';
return a+1;
调用runScript后,map里将返回key分别为a,b,c,return。 值分别为1,当前日期,字符串'2,以及3。
groupTemplate.validateScript 可以用于校验模板是否正确,如果不正确,返回BeetlException
BeetlException ex = groupTemplate.validateScript(script);
if(ex!=null){
ErrorInfo info = new ErrorInfo(ex);
System.out.println(info.toString());
}