FreeMarker 手册 v2.3.19
FreeMarker 是一款模板引擎:即一种基于模板、用来生成输出文本(任何来自于 HTML 格式的文本用来自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包,或者说是一个类库。它不是面向最终用户的,而是为程序员提供的一款可以嵌入他们所开发产品的应用程序。
目录
前言.. 7
什么是FreeMarker? .. 7
我们应该阅读什么内容? .. 8
文档规约. 8
联系我们. 8
几点说明. 9
第一部分 模板开发指南 .. 10
第一章 模板开发入门 .. 10
1.1 简介 10
1.2 模板 + 数据模型 = 输出 ... 10
1.3 数据模型一览 . 11
1.4 模板一览 14
第二章 数值和类型 .. 20
2.1 基本内容 20
2.2 类型 22
第三章 模板 . 26
3.1 总体结构 26
3.2 指令 27
3.3 表达式 28
3.4 插值 43
第四章 其它 . 46
4.1 自定义指令 . 46
4.2 在模板中定义变量 . 51
4.3 命名空间 54
4.4 空白处理 57
4.5替换(方括号)语法 ... 60
第二部分 程序开发指南 .. 62
第一章 程序开发入门 .. 62
1.1 创建配置实例 . 62
1.2 创建数据模型 . 62
1.3 获得模板 63
1.4 合并模板和数据模型 .. 64
1.5将代码放在一起 .. 64
第二章 数据模型 . 66
2.1 基本内容 66
2.2 标量 66
2.3 容器 67
2.4 方法 68
2.5 指令 69
2.6 节点变量 75
2.7 对象包装 76
第三章 配置 . 80
3.1 基本内容 80
3.2 共享变量 80
3.3 配置信息 81
3.4 模板加载 83
3.5 错误控制 86
第四章 其它 . 90
4.1 变量 90
4.2 字符集问题 . 90
4.3 多线程 92
4.4 Bean的包装 . 92
4.5 日志 98
4.6 在Servlet中使用FreeMarker .. 99
4.7 为FreeMarker配置安全策略..106
4.8 遗留的XML包装实现 107
4.9 和Ant一起使用FreeMarker...110
4.10 Jython 包装器 ..111
第三部分 XML处理指南.113
前言.113
第一章 揭示XML文档 114
1.1 节点树 ...114
1.2 将XML放到数据模型中 116
第二章 必要的XML处理 118
2.1 通过例子来学习 118
2.2 形式化描述 125
第三章 声明的XML处理 130
3.1 基础内容 ...130
3.2 详细内容 ...132
第四部分 参考文档 135
第一章 内建函数参考文档 .135
1.1 处理字符串的内建函数 .135
1.2 处理数字的内建函数 .148
1.3 处理日期的内建函数 .152
1.4 处理布尔值的内建函数 .156
1.5 处理序列的内建函数 .157
1.6 处理哈希表的内建函数 .162
1.7 处理节点(XML)的内建函数163
1.8 很少使用的和专家级的内建函数 ..164
第二章 指令参考文档 .168
2.1 if,else,elseif指令 ...168
2.2 switch,case,default,break指令.170
2.3 list,break 指令 .171
2.4 include指令 172
2.5 import 指令 175
2.6 noparse指令 ...176
2.7 compress指令 .177
2.8 escape,noescape指令...178
2.9 assign 指令 .180
2.10 global 指令 ...182
2.11 local 指令 .183
2.12 setting 指令 ..183
2.13 用户自定义指令(<@...>) ..185
2.14 macro,nested,return 指令 187
2.15 function,return 指令...191
2.16 flush 指令 .193
2.17 stop 指令..193
2.18 ftl 指令 .194
2.19 t,lt,rt 指令 ..195
2.20 nt 指令 .196
2.21 attempt,recover 指令 .197
2.22 visit,recurse,fallback 指令 .198
第三章 特殊变量参考文档 .203
第四章 FTL中的保留名称...205
第五章 废弃的FTL结构 .206
5.1 废弃的指令列表 206
5.2 废弃的内建函数列表 .206
5.3 老式的macro和call指令 ..206
5.4 转换指令 ...208
5.5 老式FTL语法 .209
5.6 #{…}式的数字插值 ..210
第五部分 附录 212
附录A FAQ ...212
1. JSP和FreeMarker的对比 .212
2. Velocity和FreeMarker的对比...213
3. 为什么FreeMarker对null-s和不存在的变量很敏感,如何来处理它? ..213
4. 文档编写了特性X,但是好像FreeMarker并不知道它,或者它的行为和文档描述的不同,或者一个据称已经修改的BUG依然存在。 ...214
5. 为什么FreeMarker打印奇怪的数字数字格式(比如1,000,000或1 000 000而不是1000000)? 214
6. 为什么FreeMarker会打印不好的小数和/或分组分隔符号(比如3.14而不是3,14).215
7. 为什么当我想用如格式打印布尔值时,FreeMarker会抛出错误,又如何来修正呢?..215
8. FreeMarker标签中的<和>混淆了编辑器或XML处理器,应该怎么做? .215
9. 什么是合法的变量名? ...215
10. 如何使用包含空格,或其他特殊字符的变量(宏)名? .216
11. 当我试图使用JSP客户标签时为什么会得到非法参数异常:形式参数类型不匹配?..216
12. 如何像jsp:include一样的方式引入其它的资源?..217
13. 如何给普通Java方法/ TemplateMethodModelEx/ TemplateTransformModel/ TemplateDirectiveModel的实现传递普通java.lang.* / java.util.*对象的参数? .217
14. 为什么在myMap[myKey]表达式中不能使用非字符串的键?那现在应该怎么做?..218
15. 当使用?keys/?values遍历Map(哈希表)的内容时,得到了混合真正map条目的java.util.Map的方法。当然,只是想获取map的条目。 219
16. 在FreeMarker的模板中如何改变序列(lists)和哈希表(maps)? ...219
17. 关于null在FreeMarker模板语言是什么样的? 220
18. 我该怎么在表达式(作为另外一个指令参数)中使用指令(宏)的输出? 221
19. 在输出中为什么用“?”来代替字符X? 221
20. 在模板执行完成后,怎么在模板中获取计算过的值? ..222
21. 我能允许用户上传模板吗?又如何保证安全呢? .222
22. 如何在Java语言中实现方法或宏而不是在模板语言中?.223
23. 为什么FreeMarker的日志压制了我的应用程序? 223
24. 在基于Servlet的应用程序中,如何在模板执行期间发生错误时,展示一个友好的错误提示页面,而不是堆栈轨迹? ..224
25. 我正使用一个可视化的HTML割裂模板标记的编辑器。你们可以改变模板语言的语法来兼容我的编辑器么? .224
26. FreeMarker有多快?真的是2.X版本的要比1.X版本(经典的FreeMarker)的慢吗?..224
27. 我的Java类怎么才能获取到关于模板结构的信息(比如所有变量的列表)?.225
28. 你会一直提供向后的兼容性吗? ..225
29. 如果我们把FreeMarker和我们的产品一起发行,我们需要发布我们产品的源代码么? ..226
附录B 安装FreeMarker..227
附录C 构建FreeMarker..228
附录D 版本 .229
2.3.18版 ..229
2.3.17版 ..230
2.3.16 版..233
2.3.15 版..233
2.3.14 版..234
2.3.13 版..235
2.3.12 版..235
2.3.11 版..236
2.3.10 版..237
2.3.9 版 238
2.3.8 版 239
2.3.7 版 239
2.3.7 RC1版 ..240
2.3.6 版 241
2.3.5 版 241
2.3.4 版 242
2.3.3 版 243
2.3.2 版 244
2.3.1 版 245
2.3 版 ...247
2.2.8 版 260
2.2.7 版 260
2.2.6 版 260
2.2.5 版 261
2.2.4 版 262
2.2.3 版 262
2.2.2 版 263
2.2.1 版 263
2.2 版 ...264
2.1.5 版 272
2.1.4 版 272
2.1.3 版 272
2.1.2 版 273
2.1.1 版 273
2.1 版 ...274
2.01 版 .278
2.0 版 ...278
2.0 RC3版.279
2.0 RC2版.280
2.0 RC1版.281
附录E 许可 .284
词汇表 285
下载地址:https://www.wenjiangs.com/wp-content/uploads/2022/01/FreeMarker-Manual.zip
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: AWK 程序设计语言
下一篇: Linux 常用命令手册 PDF 文档
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论