使用额外的资源加载器

某些情况下,模板来源不止一处,GroupTemplate配置了一个默认的资源加载器,如果通过gt.getTemplate(key),将调用默认的ResourceLoader,获取模板内容,然后转化为beetl脚本放入到缓存里。你也可以传入额外的资源管理器加载模板,通过调用gt.getTemplate(key,otherLoader)来完成;

  1. GroupTemplate gt = new GroupTemplate(conf,fileLoader)
  2. //自定义,参考下一节
  3. MapResourceLoader dbLoader = new MapResourceLoader(getData());
  4. Template t = gt.getTemplate("db:1", dbLoader);
  5. private Map getData(){
  6. Map data = new HashMap();
  7. data.put("db:1", "${a}");
  8. return data;
  9. }

对于更复杂的模板资源来源,也可以自定义一个资源加载来完成,参考下一节