FreeMarker 模板文件 路径设置

  

   1.freemarker 模板文件路径设置

   

import java.io.File;
import java.io.IOException;
import java.io.StringWriter;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.hike.export.Global;
import com.hike.export.exception.AppException;

import freemarker.cache.ClassTemplateLoader;
import freemarker.cache.FileTemplateLoader;
import freemarker.cache.MultiTemplateLoader;
import freemarker.cache.TemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public abstract class FtlTemplateBuilder {

	private static final Logger LOG = LoggerFactory.getLogger(FtlTemplateBuilder.class);
	
	private static final Configuration cfg = new Configuration();

	private static final DefaultObjectWrapper wrapper = new DefaultObjectWrapper();
	
	static {
		try {
			init();
		} catch (IOException e) {
			
		}
	}
	
	private static void init() throws IOException{
		cfg.setDefaultEncoding("UTF-8");
		TemplateLoader file = new FileTemplateLoader(new File(Global.BASE_DIR));
		TemplateLoader clz = new ClassTemplateLoader(FtlTemplateBuilder.class,"/");
		TemplateLoader[] loaders = new TemplateLoader[]{file,clz};
		MultiTemplateLoader mtl = new MultiTemplateLoader(loaders);
		cfg.setTemplateLoader(mtl);
		cfg.setObjectWrapper(wrapper);
	}
	
	public static String processTemplateIntoString(String ftl, Object model) {
		StringWriter result = null;
		try {
		    Template template = cfg.getTemplate(ftl);
		    result = new StringWriter();
		    template.setEncoding("UTF-8");
		    template.process(model, result);
		} catch (IOException e) {
		    throw new AppException(e.getMessage());
		} catch (TemplateException e) {
		    throw new AppException(e.getMessage());
		}
		return result.toString();
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值