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

本文共 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

你可能感兴趣的文章
web负载均衡(ipvsadm)(未成)
查看>>
抓取存储quota超过80%的users
查看>>
C语言经典算法100例
查看>>
速成CAD版本转换的教程
查看>>
CAD文件图纸过大,该怎么解决?
查看>>
Spring aop 切不进去原因。。
查看>>
PHP获取客户端IP
查看>>
php开发APP接口-封装通信接口改进版
查看>>
Android系统性能演变历程
查看>>
OSChina 周三乱弹 —— 打醒精神去瞌睡
查看>>
SSH 密钥登录linux
查看>>
你必须掌握的 21 个 Java 核心技术!
查看>>
告诉你WHT中文站是什么?
查看>>
4、Juniper SSG520 PPTP映射到ROS后MAC无法连接解决方法
查看>>
利用批处理文件来建立一个记录3389登陆者信息
查看>>
Linux 系统下双机HA的实现
查看>>
02_swarm mode key concepts
查看>>
Eclipse打包插件Fat Jar 解压打包
查看>>
Apache Shiro 使用手册
查看>>
CentOS mini 6.5 安装DB2 Express-C 问题处理记录
查看>>