package com.ninemax.test;import java.io.File;import java.io.OutputStreamWriter;import java.util.HashMap;import java.util.Map;import freemarker.template.Configuration;import freemarker.template.Template;public class FreeMarkerByTwo { @SuppressWarnings("all") public static void main(String[] args) throws Exception { // 创建 freemarker配置实例 Configuration cfg = new Configuration(); cfg.setDirectoryForTemplateLoading(new File("D:\\freemarker\\src")); // 创建数据类型 Mapmap = new HashMap (); map.put("type", "other"); map.put("num1", 2); map.put("num2", 3); // 加载模板文件 Template t = cfg.getTemplate("macro.ftl"); //显示生成后的数据 t.process(map, new OutputStreamWriter(System.out)); }}
marco.ftl文件:
----------------------宏指令的使用 m1可以看成是方法的名称,num1、num2为入参----------------------<#macro m1 num1 num2><#assign result=num1+num2>${result}
<@m1 5 6/>----------------------宏指令(嵌入式)-----------------<#macro m2><#nested>
<@m2>hello world
输出:
----------------------宏指令的使用 m1可以看成是方法的名称,num1、num2为入参----------------------11
----------------------宏指令(嵌入式)-----------------hello world