博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
静态化模板Freemaker的基本语法
阅读量:6487 次
发布时间:2019-06-24

本文共 5303 字,大约阅读时间需要 17 分钟。

首先,导入jar包

freemark的demo类:

1 public class FMDemo { 2  3     //实例化Freemarker  配置类   ftl freemarker templet   4     // .java  .html  .jsp .xml 5     // .ftl .txt  6     //dao bean xml service controller .jsp 7     public static void main(String[] args) throws IOException, TemplateException { 8         //模板 +  数据模型 = 输出 9         Configuration  conf = new Configuration();10         //告诉conf 类  模板放在哪里11         String dir = "C:\\Users\\cuibin\\workspace-juno\\freemarker\\ftl\\";12         // 模板放在哪里13         conf.setDirectoryForTemplateLoading(new File(dir));    14         //模板对象15         Template template = conf.getTemplate("freemarker.html");16         //数据17         Map root = new HashMap();18         root.put("world", "世界你好");19         //120         Person person = new Person();21         person.setId(1);22         person.setName("薪水");23         root.put("person", person);24         //2 List25         List
persons = new ArrayList
();26 persons.add("范冰冰");27 persons.add("李冰冰");28 persons.add("何灵");29 root.put("persons", persons);30 //3 Map31 Map mx = new HashMap();32 mx.put("fbb","范冰冰");33 mx.put("lbb","李冰冰");34 root.put("mx",mx);35 //4: List
36 37 List maps = new ArrayList();38 Map pms1 = new HashMap();39 pms1.put("id1", "范冰冰");40 pms1.put("id2", "李冰冰");41 Map pms2 = new HashMap();42 pms2.put("id1", "曾志伟");43 pms2.put("id2", "何炅");44 maps.add(pms1);45 maps.add(pms2);46 root.put("maps", maps);47 48 //时间49 root.put("cur_time", new Date());50 //null51 root.put("val",null);52 53 54 55 //输出流 最终成文件56 Writer out = new FileWriter(new File(dir + "hello.html"));57 58 template.process(root, out);59 60 System.out.println("生成完毕!");61 62 }63 }

模板页freemaker.html:

1   2   3 
4 Insert title here 5 6 7 ${world}
8 9 ${person.id}/${person.name}
10 11
17 18 <#list persons as person> 19 ${person} 20
21 22
26 <#list mx?keys as key> 27 ${mx[key]} 28
29 30 ${mx.fbb}/${mx.lbb}
31 32
42 <#list maps as map > 43 <#list map?keys as key> 44 ${map[key]} 45
46
47 <#list maps as map > 48 ${map.id1}/${map.id2} 49
50
51 52 <#list persons as p> 53 ${p_index} 54
55 56 57 <#assign x='${world}' /> 58 ${x} 59 60 <#assign x>世界太好了
61 ${x} 62 63 <#assign x> 64 <#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as n> 65 ${n} 66
67
68 ${x}
69 70 <#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as n> 71 <#if n != "星期一"> 72 ${n} 73
74
75 <#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as n> 76 <#if n_index != 0> 77 ${n} 78
79
80 81 <#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as n> 82 <#if (n_index == 1) || (n_index == 3)> 83 ${n} 84
85
86 87 <#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as n> 88 <#if (n_index == 1) || (n_index == 3)> 89 ${n} --红色 90 <#else> 91 ${n} --绿色 92
93
94 95 ${cur_time?datetime}
96 97 ${val!} 98 99
100 <#macro table pageNo>101 ${pageNo} 102 如果是每一页 1103 ...104
105 <@table pageNo=8 />
106 107 <#macro table u>108 ${u}109 <#nested/>110
111 <@table u=8 >这是8
112 113 114 115 116 117 118 119 120 121 122 123

执行demo的main方法生成输出页:

1   2   3 
4 Insert title here 5 6 7 世界你好
8 9 1/薪水
10 11
17 18 范冰冰 19 李冰冰 20 何灵 21
22 23
27 李冰冰 28 范冰冰 29
30 31 范冰冰/李冰冰
32 33
43 李冰冰 44 范冰冰 45 何炅 46 曾志伟 47
48 范冰冰/李冰冰 49 曾志伟/何炅 50
51 52 0 53 1 54 2 55 56 57 世界你好 58 59 世界太好了 60 61 星期一 62 星期二 63 星期三 64 星期四 65 星期五 66 星期六 67 星期天 68
69 70 星期二 71 星期三 72 星期四 73 星期五 74 星期六 75 星期天 76 星期二 77 星期三 78 星期四 79 星期五 80 星期六 81 星期天 82
83 84 星期二 85 星期四 86
87 88 星期一 --绿色 89 星期二 --红色 90 星期三 --绿色 91 星期四 --红色 92 星期五 --绿色 93 星期六 --绿色 94 星期天 --绿色 95
96 97 2015-5-11 15:39:02
98 99 100 101
102 8 103 如果是每一页 1104 ...105
106 107 8108 这是8109 110 111 112 113 114 115 116 117 118 119 120

 

转载于:https://www.cnblogs.com/cuibin/p/7076373.html

你可能感兴趣的文章
java中的访问权限
查看>>
CallableAndFuture
查看>>
Nginx配置文件详细说明
查看>>
开源爬虫larbin分析
查看>>
C# Linq获取两个List或数组的差集交集
查看>>
YUV422转RGB24
查看>>
数据库:mongodb与关系型数据库相比的优缺点zz
查看>>
webclinet downstring 搜狐 为什么是个?号
查看>>
new的三种形态
查看>>
记录发现的一个hiredis的bug
查看>>
WPF整理-使用ResourceDictionary管理Logical Resources
查看>>
广告banner:手动滑动切换,自动切换,点击跳转,异步加载网络图片
查看>>
2018-05-17 第十一天
查看>>
linux 下实现ssh免密钥登录
查看>>
MySQL 5.7 LOGICAL_CLOCK 并行复制原理及实现分析
查看>>
apache访问日志
查看>>
shell后台执行命令-crontab
查看>>
jQuery |添加标签元素/内容
查看>>
oracle 动态注册和静态注册
查看>>
linux 压缩以及归档
查看>>