直接运行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 ScriptEvalErrorkey为资源名,paras为脚本的全局变量,w可选参数,如果执行脚本有输出,则输出到w里,loader参数可选,如果指定,则使用此laoder加载脚本

执行脚本完毕后,返回到Map里的值可能包含如下:

  • 模板的顶级的临时变量,key为临时变量名
  • return 值将返回到map里 ,key为return

如下脚本(此时就不需要脚本定界符了)

  1. var a = 1;
  2. var b = date();
  3. var c = '2';
  4. return a+1;

调用runScript后,map里将返回key分别为a,b,c,return。 值分别为1,当前日期,字符串'2,以及3。

groupTemplate.validateScript 可以用于校验模板是否正确,如果不正确,返回BeetlException

  1. BeetlException ex = groupTemplate.validateScript(script);
  2. if(ex!=null){
  3. ErrorInfo info = new ErrorInfo(ex);
  4. System.out.println(info.toString());
  5. }