项目结构
HTML模板
freemarker.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
-----------------------------------------
//字符串
${world}
<br>
-----------------------------------------
//对象数据
${student}/${student.id}/${student.name}
<br>
-----------------------------------------
<!-- //list 集合数据
List<String> persons=new ArrayList<String>();
persons.add("小米1");
persons.add("小米2");
persons.add("小米3");
root.put("persons", persons); -->
<#list persons as person>
${person}
</#list>
<br>
获取当前迭代的索引
<#list persons as person>
${person_index}
</#list>
<br>
-----------------------------------------
<!--
//map 集合数据
Map mx=new HashMap();
mx.put("小米1", "小米1");
mx.put("小米2", "小米2");
mx.put("xm3", "小米3");
root.put("mx", mx);
-->
<#list mx ? keys as key>
${mx[key]}
</#list>
<br>
${mx.xm3} /${mx.小米2} /${mx.小米1}
<br>
-----------------------------------------
<!-- //list<map>数据
List<Map> listMap=new ArrayList<Map>();
Map mx1=new HashMap();
Map mx2=new HashMap();
mx1.put("小米1", "小米1");
mx1.put("小米2", "小米2");
mx2.put("xm3", "小米3");
listMap.add(mx1);
listMap.add(mx2); -->
<br>
-----------------------------------------
<#list listMap as map>
<#list map ? keys as key>
${map[key]}
</#list>
</#list>
<br>
在模板中赋值情况1
<#assign x=0/>
${x}
<br>
-----------------------------------------
在模板中赋值情况1
<#assign y='${world}'/>
${y}
<br>
-----------------------------------------
在模板中赋值情况3
<#assign y>世界太好了</#assign>
${y}
<br>
-----------------------------------------
在模板中赋值情况4
<#assign y>
<#list persons as person>
${person}
</#list>
</#assign>
${y}
<br>
-----------------------------------------
if语句
<#list persons as person>
<#if person=='小米1'>
${person}
</#if>
</#list>
-----------------------------------------
if语句 按索引
<#list persons as person>
<#if person_index!=0>
${person}
</#if>
</#list>
-----------------------------------------
|| && else语句 按索引
<#list persons as person>
<#if person_index==0 ||person_index==1>
${person}
<#else>
${person}
</#if>
</#list>
-----------------------
时间格式
${curTime?date}
${curTime?time}
${curTime?datetime}
-----------------------
null格式
${testNull!"我是null"}
${testNull!""}
${testNull!}
-----------------------
宏定义 页面写逻辑判断
<#macro table pageNo>
${pageNo}
</#macro>
<@table pageNo=8 />
-----------------------
<#macro table u>
${u}
<#nested/>
</#macro>
<@table u=8>this is 8</@table>
------------------------
include
</body>
</html>
freeamr数据
public class FreemarkerDemo {
//搭建freemarker
public static void main(String[] args) throws IOException, TemplateException {
//配置对象 ftl freemarker template 的简写,demo.ftl建议,但是demo.xml,demo.html等等都行
Configuration conf=new Configuration();
//模板路径
String dir="F:\\developSource\\eclipse\\workSpaceX86_64\\freemarker\\ftl\\";//freemarker.html
//导入模板目录
conf.setDirectoryForTemplateLoading(new File(dir));
//获取模板
Template template = conf.getTemplate("freemarker.html");
//数据
Map root=new HashMap();
root.put("world", "世界你好");
//对象数据
Student student=new Student(1,"小米");
root.put("student", student);
//list 集合数据
List<String> persons=new ArrayList<String>();
persons.add("小米1");
persons.add("小米2");
persons.add("小米3");
root.put("persons", persons);
//map 集合数据
Map mx=new HashMap();
mx.put("小米1", "小米1");
mx.put("小米2", "小米2");
mx.put("xm3", "小米3");
root.put("mx", mx);
//list<map>数据
List<Map> listMap=new ArrayList<Map>();
Map mx1=new HashMap();
Map mx2=new HashMap();
mx1.put("小米1", "小米1");
mx1.put("小米2", "小米2");
mx2.put("xm3", "小米3");
listMap.add(mx1);
listMap.add(mx2);
root.put("listMap", listMap);
//时间格式
root.put("curTime", new Date());
//null格式
root.put("testNull", null);
//输出
Writer out=new FileWriter(new File(dir+"hello.html"));
//生成开始
template.process(root, out);
//关闭流
out.flush();
out.close();
System.out.println("生成了");
}
}
模板+数据–》新的页面 hello.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
-----------------------------------------
//字符串
世界你好
<br>
-----------------------------------------
//对象数据
cn.zhou.Student@7d7c214d/1/小米
<br>
-----------------------------------------
<!-- //list 集合数据
List<String> persons=new ArrayList<String>();
persons.add("小米1");
persons.add("小米2");
persons.add("小米3");
root.put("persons", persons); -->
小米1
小米2
小米3
<br>
获取当前迭代的索引
0
1
2
<br>
-----------------------------------------
<!--
//map 集合数据
Map mx=new HashMap();
mx.put("小米1", "小米1");
mx.put("小米2", "小米2");
mx.put("xm3", "小米3");
root.put("mx", mx);
-->
小米2
小米3
小米1
<br>
小米3 /小米2 /小米1
<br>
-----------------------------------------
<!-- //list<map>数据
List<Map> listMap=new ArrayList<Map>();
Map mx1=new HashMap();
Map mx2=new HashMap();
mx1.put("小米1", "小米1");
mx1.put("小米2", "小米2");
mx2.put("xm3", "小米3");
listMap.add(mx1);
listMap.add(mx2); -->
<br>
-----------------------------------------
小米2
小米1
小米3
<br>
在模板中赋值情况1
0
<br>
-----------------------------------------
在模板中赋值情况1
世界你好
<br>
-----------------------------------------
在模板中赋值情况3
世界太好了
<br>
-----------------------------------------
在模板中赋值情况4
小米1
小米2
小米3
<br>
-----------------------------------------
if语句
小米1
-----------------------------------------
if语句 按索引
小米2
小米3
-----------------------------------------
|| && else语句 按索引
小米1
小米2
小米3
-----------------------
时间格式
2017-4-19
15:28:12
2017-4-19 15:28:12
-----------------------
null格式
我是null
-----------------------
宏定义 页面写逻辑判断
8
-----------------------
8
this is 8
------------------------
include
</body>
</html>