freemarker生成简单模板
简单介绍
- 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生成简单模板相关推荐
- 使用freemarker生成xml模板
今天在java交流群里有个人问我如何用freemarker生成xml模板文件,可以手动配置参数,于是我到网上百度了一下.发现有一位同行的博文写的很nice,于是我就照着他的代码敲了一遍,最后实现了,本 ...
- freemarker生成word模板
freemarker生成word模板 一.引入依赖 <dependency><groupId>org.freemarker</groupId><artifac ...
- Freemarker 生成word 模板文件
2019独角兽企业重金招聘Python工程师标准>>> /*** * word 下载生成 * @param positionvo * @return ...
- 用freemarker生成word模板
需求: 给文书统一生成一个搞头文件,文件内容基本是一样的. 用freemarker生成docx文档 一.生成一个docx结尾的word模板,然后把文档的后缀docx改成zip,zip里会有生成很多文件 ...
- 使用IText5+Freemarker生成PDF(模板可以使用CCS3分页效果)
iText介绍 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...
- Java实现freemarker生成word模板
博主在做的是将word源文件中的内容读取出来,然后按照固定的格式输出,当然,源文件有大量,所以编写了程序来批量自动生成目标文件. 本文要介绍的就是如何生成模板,并将从源文件截取的内容填充到模板文件(即 ...
- HTML生成PDF模板(Java iText+FreeMarker生成PDF(HTML转PDF))
Java iText+FreeMarker生成PDF(HTML转PDF) 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等.方便用户查看,下载,打 ...
- iText+freemarker 生成PDF 使用ftl模板
iText+freemarker 生成PDF 生成样式图片 模板地址 maven PDF生成工具类 PDF生成辅助类 base64编码工具类 service方法调用 总结 生成样式图片 模板地址 ma ...
- Java Web项目中使用Freemarker生成Word文档
Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就 ...
- FreeMarker生成复杂word(包含图片,表格)
Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就 ...
最新文章
- Visual Studio Code 配置 Markdown
- java8新特新:接口流-Stream()接口和所有方法(map,foreach,filter,count,distinct,limit,collect,skip,sorted)
- 4 关卡流 进阶_儿童桌游要不要鸡血的过关?关卡制儿童桌游介绍与方法论
- 【AI初识境】给深度学习新手开始项目时的10条建议
- neo4j CQL语句
- 16位汇编 在代码段中使用数据
- bootstrap源码分析之form、navbar
- Python脚本监控线上AMQ Number of Pending Messages数量
- UINavigationController的简单使用
- 解决sql脚本文件太大无法打开的问题
- 纯干货!如何做一个成功的大数据项目
- CentOS 7安装TeamView
- 两个重要极限 常用等价无穷下小 泰勒展开 麦克劳林公式
- 应用程序配置不正确解决方法
- 安装win10 ltsc应用商店
- 在 Linux 和 Windows 下给 Tomcat 分配大内存设置方法 - 偷得浮生半日闲 - 博客频道 - CSDN.NET...
- R 语言 用黎曼和求近似 积分
- Altium Designer(AD)软件使用记录05-PCB叠层设计
- 计算机网络云怎么连接网络设置方法,华为云电脑如何连网,华为云电脑使用教程...
- ios隐私权限的使用及设置