简单FreeMaker

不说话,只有代码

1. 要先导入FreeMaker的包freemaker-2.3.8.jar

 

2. 代码

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class FreeMakerTemplate {

	public static void main(String[] args) throws IOException, TemplateException {
		/* 创建一个合适的configuration */
		Configuration cfg = new Configuration();
		// 加载配置文件
		cfg.setDirectoryForTemplateLoading(new File(
				"src/study/freemaker/template"));
		// 指定如何查看数据模型
		cfg.setObjectWrapper(new DefaultObjectWrapper());
		/* 而以下代码你通常会在一个应用生命周期中执行多次 */
		/* 获取或创建一个模版 */
		Template template = cfg.getTemplate("test.ftl");
		/* 创建一个数据模型Create a data model */
		Map<String, Object> root = new HashMap<String, Object>();
		root.put("root", "root");
		Map<String, Object> elements = new HashMap<String, Object>();
		root.put("elements", elements);
		elements.put("name", "king");
		elements.put("age", "30");
		elements.put("weight", "75kg");
		elements.put("gender", "M");
		/* 合并数据模型和模版 */
		Writer out = new OutputStreamWriter(System.out);//打印到控制台
		//生成到文件
		Writer outFile = new OutputStreamWriter(new FileOutputStream("src/study/freemaker/template/test.xml"), "gb2312");
		template.process(root, out);
		template.process(root, outFile);
		out.flush();
	}
}

 test.ftl

<root name="${root}"> 
   	<name>${elements.name}</name>
   	<age>${elements.age}</age>
   	<weight>${elements.weight}</weight>
   	<gender>${elements.gender}</gender>
</root>

 

运行结果:

<root name="root"> 

   <name>king</name>

   <age>30</age>

   <weight>75kg</weight>

   <gender>M</gender>

</root>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值