在普通Java项目中使用freemarker

昨天简单的说了下在web项目中怎么使用freemarker,其实也可以在普通的java项目中使用freemarker,和web使用没什么太大的区别,只是在设置模板所在的文件夹的方法上有所不同,在Java项目中使用的是setDirectoryForTemplateLoading方法,在web项目中使用的是setServletContextForTemplateLoading方法,下面来看看怎么在普通的Java项目中使用freemarker

1、新建一个Java工程;

2、添加freemarker的jar包,我使用的是2.3.19

3、下面看一个具体实现:

首先在template目录下新建一个template.ftl文件,在这个文件中写入一句话:${message} 这是一个freemarker模板文件

然后是java代码

package com.test.freemarker;
import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;

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

/**
 * 简单的freemarker测试类
 * @author Administrator
 *
 */
public class SimpleFreemarker {
	private Configuration cfg ;
	private Template template;
	private StringWriter stringWriter;
	private Map args;
	/**
	 * 初始化方法
	 * @throws IOException
	 */
	public void init() throws IOException{
		 // 获取freemarker的Configuration实例
		cfg = new Configuration();
		 //设置模板文件目录
		cfg.setDirectoryForTemplateLoading(new File("template"));
		 // 取得模板文件
		template = cfg.getTemplate("template.ftl");
		 //实例化一个字符串输出流
		stringWriter = new StringWriter();
		 // 实例化一个放置参数的map
		args = new HashMap();
	}
	/**
	 * 开始处理
	 * @throws TemplateException
	 * @throws IOException
	 */
	public void process() throws TemplateException, IOException{
		//放置一个参数
		args.put("message", "hello world");
		//合并模板和数据模型,并输出到stringWriter中
		template.process(args, stringWriter);
		//打印结果
		System.out.println(stringWriter.toString());
	}
}


4,使用junit测试下这个类是否能正确工作:

package junit.test;

import java.io.IOException;
import org.junit.Test;
import com.test.freemarker.SimpleFreemarker;
import freemarker.template.TemplateException;


public class FreemarkerTest {
	
	@Test
	public void test(){
		SimpleFreemarker s = new SimpleFreemarker();
		try {
			s.init();
			s.process();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (TemplateException e) {
			e.printStackTrace();
		}
	}
}


5,运行,输出结果:hello world 这是一个freemarker模板文件

不错,还是能正确工作的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值