1.创建配置实例:
Configuration cfg = new Configuration(Configuration.VERSION_2_3_23);
// 设置模版根路径
try {
cfg.setDirectoryForTemplateLoading(new File(path));
} catch (IOException e) {
LOGGER.error("创建freemark配置实例异常,异常信息:{}", e.getMessage(), e);
}
// 设置模板字符集
cfg.setDefaultEncoding("UTF-8");
// 设置异常显示方式
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.HTML_DEBUG_HANDLER);
// 不显示任何异常信息
cfg.setLogTemplateExceptions(false);
VERSION_2_3_23,VERSION_2_3_21等信息代表着使用的版本,也可以使用默认版本DEFAULT_INCOMPATIBLE_IMPROVEMENTS;
path需要使用/src/main样式相对路径,classpath:ftl格式路径不空指针;
TemplateExceptionHandler.HTML_DEBUG_HANDLER异常显示形式包括不抛出异常、在运行出抛出异常和形成一个显示异常的html文档三种形式,其他形式没有过多研究和关注;
注:创建配置实例动作不需要每次都创建一个,可进行统一管理
2.创建模板
try {
if (!FileUtil.isExists(filePath)) {
FileUtil.writeFile(filePath, "");
}
// 获取模板
Template template = cfg.getTemplate(templateName);
Writer writer = new OutputStreamWriter(new FileOutputStream(new File(filePath)));
template.process(params, writer);
} catch (TemplateException e) {
LOGGER.error("模板数据替换异常,异常信息:{}", e.getMessage(), e);
} catch (UnsupportedEncodingException e) {
LOGGER.error("文件输出流异常,异常信息:{}", e.getMessage(), e);
} catch (IOException e) {
LOGGER.error("IO流异常,异常信息:{}", e.getMessage(), e);
}
通过配置中心根据模板名称加载模板,创建一个输出流,输出流格式为各位的需要格式,最后一步为加载数据到模板中并将生成的文档信息通过输出到执行路径文件中。
详细信息见官网:https://freemarker.apache.org/docs/pgui_quickstart_createconfiguration.html 快速开始:getting started