freemarker 模板生成 文件
来源:互联网 发布:java中bean是什么 编辑:程序博客网 时间:2024/05/17 08:51
最近公司比较忙,好久没写文章了,今天来一篇。
要生成的目标java文件
package com.cs.qdog.swift.objects; public class F32B { private Double amount; private String currency; public Double getAmount() { return amount; } public void setAmount(Double amount) { this.amount = amount; } public String getCurrency() { return currency; } public void setCurrency(String currency) { this.currency = currency; } }
模板文件SwiftFieldClass.txt(可以是任意格式的文件)
package com.cs.qdog.swift.objects; public class ${class} { <#list properties as prop> private ${prop.type} ${prop.name}; </#list> <#list properties as prop> public ${prop.type} get${prop.name?cap_first}(){ return ${prop.name}; } public void set${prop.name?cap_first}(${prop.type} ${prop.name}){ this.${prop.name} = ${prop.name}; } </#list> }
java 代码
package com.cs.qdog.swift.objects; import java.io.File; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import freemarker.template.Configuration; import freemarker.template.DefaultObjectWrapper; import freemarker.template.Template; import freemarker.template.TemplateException; public class GenObjects { public static void main(String[] args) throws IOException, TemplateException { /* ------------------------------------------------------------------- */ /* You usually do it only once in the whole application life-cycle: */ /* Create and adjust the configuration */ Configuration cfg = new Configuration(); cfg.setDirectoryForTemplateLoading(new File( "D:/Temp/EclipseWorkSpace/GenSwiftFields/templates")); //模板父路径 cfg.setObjectWrapper(new DefaultObjectWrapper()); /* ------------------------------------------------------------------- */ /* You usually do these for many times in the application life-cycle: */ /* Get or create a template */ Template temp = cfg.getTemplate("SwiftFieldClass."); //模板文件,相对于setDirectoryForTemplateLoading设置的路径 /* Create a data-model */ Map<String, Object> root = new HashMap<String, Object>(); //注意必须有一个根结点 data-model root.put("class", "F32B"); Collection<Map<String, String>> properties = new HashSet<Map<String, String>>(); root.put("properties", properties); /* subfield 1: currency */ Map<String, String> currency = new HashMap<String, String>(); currency.put("name", "currency"); currency.put("type", "String"); properties.add(currency); /* subfield 2: amount */ Map<String, String> amount = new HashMap<String, String>(); amount.put("name", "amount"); amount.put("type", "Double"); properties.add(amount); /* Merge data-model with template */ String targetPath="***";//生成的目标文件的父目录 String targetFile="****";//生成目标文件的名字 if (!targetPath.exists()) targetPath.mkdirs(); File targetFile = new File(targetBasePath,targetFileName); if (!targetFile.exists()) targetFile.createNewFile(); Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(targetFile), "UTF-8")); temp.process(root, out); out.flush(); } }
0 0
- freemarker 模板生成 文件
- freemarker模板生成word文件
- 使用freemarker模板生成文件主要配置
- java使用 freemarker 模板生成word文件
- 使用freemarker生成xml模板
- FreeMarker入门 生成xml模板
- 使用freemarker模板生成pdf
- freemarker自动生成代码模板
- 使用freemarker生成文件
- freemarker 生成静态文件
- freemarker 模版生成文件
- FreeMarker工具类,用来根据模板文件生成html文件,html字符串等
- Freemarker模板文件编码问题
- 【FreeMarker】【模板文件FTL】基础
- freemarker加载模板文件的
- 【FreeMarker】【模板文件FTL】模板数据模型,数据类型
- 【FreeMarker】【模板文件FTL】模板总体结构
- 【FreeMarker】【模板文件FTL】模板指令/标签 <#> <@>
- 主广告06-兼容IE8和Chrome浏览器
- 自定义View二(加入线程,实现绘制图形动态化)
- MFC之Win7获取当前活动用户与锁屏状态
- 程序员面试金典: 9.3栈与队列 3.2设计一个栈,除pop与push方法,支持返回栈最小元素min方法,时间复杂度均为O(1)
- Ubuntu 14.04 caffe 无GPU安装配置
- freemarker 模板生成 文件
- Log4net 将文件写入数据库的操作
- 01、工厂方法模式
- Selenium Webdriver基于Java学习(二)--Navigate
- spring hbase hbaseTemplate
- java sql编辑器 动态报表 数据库备份还原
- JavaScript及jQuery中的各种宽高属性图解
- 【JavaEE】经典JAVA EE企业应用实战-读书笔记5
- Ajax总结篇