简单介绍

  • conf目录下有property和template两个子目录,分别放properties文件和ftl模板文件
  • result目录存放结果文件
  • 在property和template中创建同名文件,但是文件后缀分别是properties和ftl
  • global.properties是全局变量设置
  • 备注一下

freemarker的maven引用

        <dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.31</version></dependency>

代码

import java.io.FileInputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.Properties;
import java.util.stream.Collectors;public class FreemarkerTest {public static final String TEMPLATE_PATH = "./conf/template";private static final String PROPERTIES_PATH = "./conf/property";private static final String RESULT_PATH = "./result";private static final String FTL_TYPE = ".ftl";private static final String PROPERTIES_TYPE = ".properties";private static final String GLOBAL_FILE = "./global.properties";public static void main(String[] args) {try {// 查看是否有全局的变量设置Path global = Paths.get(GLOBAL_FILE);Properties globalProperty = new Properties();if (Files.exists(global)) {globalProperty.load(new FileInputStream(GLOBAL_FILE));}// 创建结果目录Path path = Paths.get(RESULT_PATH);boolean directory = Files.isDirectory(path);if (!directory) {Files.createDirectory(path);}Path ftlPath = Paths.get(TEMPLATE_PATH);List<Path> ftlCollect = Files.list(ftlPath).filter(a -> !Files.isDirectory(a) && a.getFileName().toString().endsWith(FTL_TYPE)).sorted().collect(Collectors.toList());Path proPath = Paths.get(PROPERTIES_PATH);List<Path> properties = Files.list(proPath).filter(a -> a.getFileName().toString().endsWith(PROPERTIES_TYPE)).sorted().collect(Collectors.toList());for (Path f : ftlCollect) {String fName = f.getFileName().toString();String realFtlName = fName.substring(0, fName.length() - FTL_TYPE.length());for (Path p : properties) {String pName = p.getFileName().toString();String propertyName = pName.substring(0, pName.length() - PROPERTIES_TYPE.length());if (realFtlName.equals(propertyName)) {FreemarkerUtil.createTemplate(fName, PROPERTIES_PATH + "/" + pName, RESULT_PATH + "/" + realFtlName + ".yaml", globalProperty);}}}} catch (Exception e) {e.printStackTrace();}}
}

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Properties;public class FreemarkerUtil {private final static Configuration configuration = new Configuration(Configuration.VERSION_2_3_19);static {try {configuration.setDirectoryForTemplateLoading(new File(FreemarkerTest.TEMPLATE_PATH));} catch (IOException e) {e.printStackTrace();}}public static void createTemplate(String ftlName, String propertyName, String resultName, Properties global) throws IOException, TemplateException {Properties properties = new Properties();properties.putAll(global);properties.load(new FileInputStream(propertyName));// step4 加载模版文件Template template = configuration.getTemplate(ftlName);// step5 生成数据File docFile = new File(resultName);try (BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(docFile), StandardCharsets.UTF_8))) {// step6 输出文件template.process(properties, out);System.out.println("——————————————" + resultName + "模板文件创建成功!");} catch (Exception e) {e.printStackTrace();}}
}

freemarker生成简单模板相关推荐

  1. 使用freemarker生成xml模板

    今天在java交流群里有个人问我如何用freemarker生成xml模板文件,可以手动配置参数,于是我到网上百度了一下.发现有一位同行的博文写的很nice,于是我就照着他的代码敲了一遍,最后实现了,本 ...

  2. freemarker生成word模板

    freemarker生成word模板 一.引入依赖 <dependency><groupId>org.freemarker</groupId><artifac ...

  3. Freemarker 生成word 模板文件

    2019独角兽企业重金招聘Python工程师标准>>> /***      * word 下载生成      * @param positionvo      * @return   ...

  4. 用freemarker生成word模板

    需求: 给文书统一生成一个搞头文件,文件内容基本是一样的. 用freemarker生成docx文档 一.生成一个docx结尾的word模板,然后把文档的后缀docx改成zip,zip里会有生成很多文件 ...

  5. 使用IText5+Freemarker生成PDF(模板可以使用CCS3分页效果)

    iText介绍 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...

  6. Java实现freemarker生成word模板

    博主在做的是将word源文件中的内容读取出来,然后按照固定的格式输出,当然,源文件有大量,所以编写了程序来批量自动生成目标文件. 本文要介绍的就是如何生成模板,并将从源文件截取的内容填充到模板文件(即 ...

  7. HTML生成PDF模板(Java iText+FreeMarker生成PDF(HTML转PDF))

    Java iText+FreeMarker生成PDF(HTML转PDF) 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等.方便用户查看,下载,打 ...

  8. iText+freemarker 生成PDF 使用ftl模板

    iText+freemarker 生成PDF 生成样式图片 模板地址 maven PDF生成工具类 PDF生成辅助类 base64编码工具类 service方法调用 总结 生成样式图片 模板地址 ma ...

  9. Java Web项目中使用Freemarker生成Word文档

    Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就 ...

  10. FreeMarker生成复杂word(包含图片,表格)

    Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就 ...

最新文章

  1. Visual Studio Code 配置 Markdown
  2. java8新特新:接口流-Stream()接口和所有方法(map,foreach,filter,count,distinct,limit,collect,skip,sorted)
  3. 4 关卡流 进阶_儿童桌游要不要鸡血的过关?关卡制儿童桌游介绍与方法论
  4. 【AI初识境】给深度学习新手开始项目时的10条建议
  5. neo4j CQL语句
  6. 16位汇编 在代码段中使用数据
  7. bootstrap源码分析之form、navbar
  8. Python脚本监控线上AMQ Number of Pending Messages数量
  9. UINavigationController的简单使用
  10. 解决sql脚本文件太大无法打开的问题
  11. 纯干货!如何做一个成功的大数据项目
  12. CentOS 7安装TeamView
  13. 两个重要极限 常用等价无穷下小 泰勒展开 麦克劳林公式
  14. 应用程序配置不正确解决方法
  15. 安装win10 ltsc应用商店
  16. 在 Linux 和 Windows 下给 Tomcat 分配大内存设置方法 - 偷得浮生半日闲 - 博客频道 - CSDN.NET...
  17. R 语言 用黎曼和求近似 积分
  18. Altium Designer(AD)软件使用记录05-PCB叠层设计
  19. 计算机网络云怎么连接网络设置方法,华为云电脑如何连网,华为云电脑使用教程...
  20. ios隐私权限的使用及设置

热门文章

  1. 推荐一款好用的Web端JSON在线编辑器svelte-jsoneditor
  2. 有什么软件可以把音频mp3格式转为文字?
  3. BT601 BT656 BT709 BT1120 解析
  4. shell的图形化工具(七)
  5. IEC 60335-1: 2001新标准的变化简介
  6. 优化vmware mac神器beamoff
  7. JSONObject.fromObject()方法报错解决方法
  8. navicat 导入excel 闪退
  9. 微型计算机的应用形式,微型计算机基本原理与应用
  10. npm下载报错npm ERR code ERESOLVE