系统用了一套远古时期的数据库访问方式,映射数据库的java文件有四个,要手写,简直恐怖. 搞一套工具. 搞互联网的同事给了建议是freeMarker, 看了下是能满足需要的.
开始做个demo
ftl是模板文件. html是生成的文件.
a.ftl内容如下
<html><br>
<head><br>
<title>Welcome!</title><br>
</head><br>
<body><br>
<#-- 注释部分 --><br>
<#-- 下面使用插值 -->
<h1>Welcome ${user} !</h1><br>
<p>We have these animals:<br>
<u1><br>
<#-- 使用FTL指令 -->
<#list animals as being >
<br>
<li>${being.name} for ${being.price} Euros<br>
</#list>
<br>
<u1><br>
</body><br>
</html>
java代码如下
private static final String TEMPLATE_PATH = "D:\\freeMarker";
private static final String CLASS_PATH = "D:\\freeMarker";
public static void main22(String[] args) {
// step1 创建freeMarker配置实例
Configuration configuration = new Configuration();
Writer out = null;
try {
// step2 获取模版路径
configuration.setDirectoryForTemplateLoading(new File(TEMPLATE_PATH));
// step3 创建数据模型
Map<String, Object> dataMap = new HashMap<String, Object>();
dataMap.put("user", "com.freemark.hello");
LinkedList<AA> animals = new LinkedList<AA>();
AA a = new AA();
a.setName("99");
a.setPrice(3.3);
AA b = new AA();
b.setName("959");
b.setPrice(53.3);
animals.add(a);
animals.add(b);
dataMap.put("animals", animals);
// step4 加载模版文件
Template template = configuration.getTemplate("a.ftl");
// step5 生成数据
File docFile = new File(CLASS_PATH + "\\" + "a.html");
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(docFile)));
// step6 输出文件
template.process(dataMap, out);
System.out.println(" 文件创建成功 !");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != out) {
out.flush();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
AA 是个简单的javabean
用a.ftl生成的html:
<html><br>
<head><br>
<title>Welcome!</title><br>
</head><br>
<body><br>
<br>
<h1>Welcome com.freemark.hello !</h1><br>
<p>We have these animals:<br>
<u1><br>
<br>
<li>99 for 3.3 Euros<br>
<br>
<li>959 for 53.3 Euros<br>
<br>
<u1><br>
</body><br>
</html>
add…
wrong
right
静态用${} 动态直接写