Freemarker 页面静态化
来源:互联网 发布:arp检测软件 编辑:程序博客网 时间:2024/05/07 20:12
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写
l FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序
l 虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图)
模板 + 数据模型 = 输出
l FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件
l FreeMarker与容器无关,因为它并不知道HTTP或Servlet;FreeMarker同样可以应用于非Web应用程序环境
l FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库
l FreeMarker是免费的
(1)实例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package
freemaker;
import
java.io.File;
import
java.io.FileWriter;
import
java.io.Writer;
import
java.util.HashMap;
import
java.util.Map;
import
freemarker.template.Configuration;
import
freemarker.template.Template;
public
class
FreeMarkerDemo {
public
static
void
main(String[] args) {
// 配置对象 .html
Configuration conf =
new
Configuration();
// 模板路径
String dir =
"D:\\workspace2\\freemaker\\ftl\\"
;
try
{
// 导入模板目录
conf.setDirectoryForTemplateLoading(
new
File(dir));
// 获取模板
Template template = conf.getTemplate(
"freemaker.html"
);
// 数据
Map root =
new
HashMap();
root.put(
"world"
,
"世界"
);
// 输出流
Writer out =
new
FileWriter(
new
File(dir +
"hello.html"
));
// 生成开始
template.process(root, out);
out.flush();
out.close();
}
catch
(Exception e) {
e.printStackTrace();
}
System.out.println(
"生成完毕"
);
}
}
(2)返回对象
1
2
3
4
5
6
7
Person p =
new
Person();
p.setId(
9527
);
p.setName(
"华安"
);
root.put(
"per"
, p);
编号:${per.id}<br/>
姓名:${per.name}<br/>
(3)遍历List
1
2
3
4
5
6
7
8
9
10
11
List<Person> list =
new
ArrayList<Person>();
for
(
int
i =
0
;i<
10
;i++){
Person p =
new
Person();
p.setId(
9527
+i);
p.setName(
"华安"
+i);
list.add(p);
}
root.put(
"list"
, list);
<#list list as p>
${p.id} -- ${p.name}
</#list>
(4)遍历Map
1
2
3
4
5
6
7
Map map = new HashMap();
map.put("id", "1001");
map.put("name", "秋香");
root.put("map", map);
<#list map?keys as key>
${map[key]}
</#list>
(5)遍历List<Map>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Map map =
new
HashMap();
map.put(
"id"
,
"1001"
);
map.put(
"name"
,
"秋香"
);
Map map2 =
new
HashMap();
map2.put(
"id"
,
"1002"
);
map2.put(
"name"
,
"石榴姐"
);
List<Map> maplist =
new
ArrayList<Map>();
maplist.add(map);
maplist.add(map2);
root.put(
"maplist"
, maplist);
<#list maplist as map>
<#list map?keys as key>
${map[key]}
</#list>
</#list>
(6)遍历if else
1
2
3
4
5
6
7
<#list ["星期一","星期二","星期三"] as n>
<#if n!="星期一">
${n}
<#else>
您好今天是星期一
</#if>
</#list>
(7)时间处理
1
2
3
root.put("dt", new Date());
年月时间:${dt?datetime}<
br
/>
时间:${dt?time}
0 0
- freemarker页面静态化
- FreeMarker页面静态化
- freemarker静态化页面
- freemarker静态化页面
- Freemarker 页面静态化
- 页面静态化 Freemarker
- Freemarker页面静态化
- Freemarker 页面静态化
- SpringMVC + FreeMarker 页面静态化
- Freemarker 静态化页面生产方式
- Freemarker 页面静态化详解
- 采用freemarker静态化页面以及freemarker视图展现简介
- 用Freemarker实现页面静态化
- 使用freemarker实现页面静态化
- Freemarker实现页面静态化cms
- springMVC freemarker实现页面静态化
- freemarker实现页面的静态化
- springMVC、freemarker页面半自动静态化
- scrollview里嵌套listview的问题(一)
- github不能访问、加载css、js解决办法
- 【Java Script 入门之路之基础篇】
- 求解方程Ax=b的通用程序
- awk命令
- Freemarker 页面静态化
- 为什么浮点数不能精确表示?
- html5本地存储(web Storage)
- MySQL常用命令
- android中getSystemService详解
- jqGrid行编辑DEMO
- CentOS 6.5平台使用CLion开发程序,编译器支持C++11的方法
- 翻转排序
- 百度贾磊LSTM+CTC详解