- 增加自定义标签
cfg.setSharedVariable("upper",new free02 ());
2 . 实现自定义方法继承TemplateDirectiveModel 类
public class free02 implements TemplateDirectiveModel {
@Override
public void execute(Environment environment, Map parms, TemplateModel[] templateModels, TemplateDirectiveBody templateDirectiveBody) throws TemplateException, IOException {
DefaultObjectWrapperBuilder builder = new DefaultObjectWrapperBuilder(Configuration.VERSION_2_3_25);
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
if (templateDirectiveBody != null) {
environment.setVariable("types", builder.build().wrap(list));
templateDirectiveBody.render(environment.getOut());
}else {
throw new RuntimeException("missing body");
}
}
}
3 可自定义返回体内容 TemplateModal
例如:
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
builder.build().wrap(list)
4 使用场景
<@upper>
bar
<#list ["red", "green", "blue"] as color>
${color}
</#list>
============================
<#list hotList as hot>
${hot}
</#list>
baaz
</@upper>
5 输出结果
red
green
blue
============================
1
2
`