groovy的SimpleTemplateEngine实现了模板功能,类似于jsp。那就分析groovy是如何实现模板的。
使用模板
Template template = new SimpleTemplateEngine().createTemplate(
new StringReader("\n" +
"Hello !")
);
final StringWriter sw = new StringWriter();
template.make([name:'bloodwolf_china').writeTo(sw);
println sw.toString();
看看SimpleTemplateEngine类
public Template createTemplate(Reader reader) throws CompilationFailedException, IOException {
SimpleTemplate template = new SimpleTemplate();
String script = template.parse(reader);
template.script = groovyShell.parse(script, "SimpleTemplateScript" + counter++ + ".groovy");
return template;
}
这儿做了三件事
1、创建了一个SimpleTemplate对象
2、解析模板,主要是把转为groovy的内置表达式${exp},把非转为调用out.print(内容)函数,中的