您的位置:首页 > 其它

使用freemarker模板生成文件主要配置

2012-02-11 14:09 806 查看
package com.ihandy.mvnversion.freemarker;

import java.io.File;
import java.io.FileWriter;
import java.io.Writer;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

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

/**
* Freemarker 服务类
* @author zzg
*/
public class FreemarkerService {

/** 存放freemarker模板的文件夹路径,依赖注入 */
private String templateDir;
private Configuration cfg;
private static final Logger logger = LoggerFactory.getLogger(FreemarkerService.class);

/**
* 实例化Freemarker Configuration
*/
public void init() {
try {
if (StringUtils.isBlank(templateDir)) {
throw new RuntimeException("请配置存放freemarker模板的文件夹路径 templateDir ");
}
logger.info("开始实例化Freemarker Configuration,templateDir:" + templateDir);
cfg = new Configuration();
cfg.setDirectoryForTemplateLoading(new File(templateDir));
cfg.setObjectWrapper(new DefaultObjectWrapper());
} catch (Exception e) {
logger.error("实例化Freemarker Configuration时出现错误", e);
}
}

/**
* 使用模板文件生成配置文件
* @param rootMap freemarker数据模型
* @param destFile 目标文件
* @param ftlFile freemarker模板文件
*/
public void write(Object rootMap, String destFile, String ftlFile) {
try {
logger.info("开始使用【" + ftlFile + "】模板文件生成【 " + destFile + "】");
Template tpl = cfg.getTemplate(ftlFile);
Writer out = new FileWriter(destFile);
tpl.process(rootMap, out);
out.flush();
logger.info("使用【" + ftlFile + "】模板文件生成【 " + destFile + "】成功");
} catch (Exception e) {
logger.error("使用【" + ftlFile + "】模板文件生成【 " + destFile + "】时出错错误", e);
}
}

public String getTemplateDir() {
return templateDir;
}

public void setTemplateDir(String templateDir) {
this.templateDir = templateDir;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: