从GroupTemplate开始

  1. //初始化代码
  2. StringTemplateResourceLoader resourceLoader = new StringTemplateResourceLoader();
  3. Configuration cfg = Configuration.defaultConfiguration();
  4. GroupTemplate gt = new GroupTemplate(resourceLoader, cfg);
  5. //获取模板
  6. Template t = gt.getTemplate("hello,${name}");
  7. t.binding("name", "beetl");
  8. //渲染结果
  9. String str = t.render();
  10. System.out.println(str);

Beetl的核心是GroupTemplate,是一个重量级对象,实际使用的时候建议使用单模式创建,创建GroupTemplate需要俩个参数,一个是模板资源加载器,一个是配置类,模板资源加载器Beetl内置了6种,分别是

  • StringTemplateResourceLoader:字符串模板加载器,用于加载字符串模板,如本例所示
  • FileResourceLoader:文件模板加载器,需要一个根目录作为参数构造,传入getTemplate方法的String是模板文件相对于Root目录的相对路径
  • ClasspathResourceLoader:文件模板加载器,模板文件位于Classpath里
  • WebAppResourceLoader:用于webapp集成,假定模板根目录就是WebRoot目录,参考web集成章
  • MapResourceLoader : 可以动态存入模板
  • CompositeResourceLoader 混合使用多种加载方式

代码第5行将变量name传入模板里,其值是“Beetl”。 代码第6行是渲染模板,得到输出,template提供了多种获得渲染输出的方法,如下

  • template.render() 返回渲染结果,如本例所示
  • template.renderTo(Writer) 渲染结果输出到Writer里
  • template.renderTo(OutputStream ) 渲染结果输出到OutputStream里
  1. Beetl 支持为模板自定义定界符和占位符,如本例子采用的默认占位符号${}
  2. 占位符用于输出变量。如果想引用变量,可直接使用变量名,这不同于Velocity,Thymleaf等其他模板语言
  1. 如果不想写代码直接体验Beetl,可以使用http://ibeetl.com/beetlonline/