FreeMarkerTemplateEngine engine=new FreeMarkerTemplateEngine("F://plugins");//指定Groovy插件目录
Template template=engine.createTemplate(new File("F://test.ftl"));//FreeMarker脚本文件 engine.getConfiguration().setEncoding(Locale.CHINESE,"UTF-8");//设定编码,以支持中文
Map binding=new HashMap();
binding.put("name", "TOM");
Writable writable=template.make(binding);
StringWriter writer=new StringWriter();
writable.writeTo(writer);
System.out.println(writer.toString());
test.ftl的内容为:
hello,${name}<@groovy plugin="test" mode=name>小写名称:${name}< /@groovy>
test.groovy的内容为:
import org.codehaus.groovy.gfreemarker.IGroovyFreeMarkerPlugin
class urlencoder implements IGroovyFreeMarkerPlugin {
String transform(Map params, String content) {
content.toLowerCase();
}
}
这样,只要将插件脚本添加创建FreeMarkerTemplateEngine时指定的目录下,就可以在FreeMarker脚本中通过<@groovy plugin="test" mode=name>来调用插件功能。当遇到一些复杂的处理逻辑时,可以通过编写插件,借助groovy强大的编程能力加以解决。