FreeMarker模板语言详解:语法与指令
需积分: 3 79 浏览量
更新于2024-07-30
收藏 31KB DOCX 举报
"FreeMarker是一种基于模板的Java技术,用于生成动态内容,尤其适用于Web应用。这个文档提供了FreeMarker的基本语法和示例,包括文本、注释、插值和FTL指令的使用。"
FreeMarker作为一款强大的模板语言,它的语法简洁而灵活,主要由以下几个部分构成:
1. **文本**:模板文件中大部分是普通的文本,这些文本会被原样输出到最终生成的文档中。
2. **注释**:以`<#---->`包围的文本被视为注释,不会出现在生成的输出中。
3. **插值**:使用`${}`或`#{}`表示的插值表达式,它们会被替换为数据模型中对应的值进行输出。例如,`${user}`会输出数据模型中名为"user"的变量值。
4. **FTL指令**:FreeMarker特有的指令,通常以`#`开头,如`<#list>`、`<#if>`等,它们用于控制模板的逻辑结构,且不会在最终输出中显示。
以下是一个FreeMarker模板的例子,展示了上述四个部分的使用:
```html
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<#-- 注释部分 -->
<h1>Welcome ${user}!</h1>
<p>We have these animals:</p>
<ul>
<#list animals as being>
<li>${being.name} for ${being.price} Euros</li>
</#list>
</ul>
</body>
</html>
```
**FTL指令规则**:
FreeMarker的FTL标签与HTML标签类似,分为开始标签、结束标签和空标签。开始标签形如`<#directive name parameter>`,结束标签形如`</#directive name>`,空标签形如`<#directive name parameter/>`。如果指令是用户自定义的而非内置指令,`#`应改为`@`。标签需要正确嵌套,交叉使用会导致错误。FTL标签内的空白字符会被忽略,`<`, `>`和指令之间也不允许有空白。
**插值规则**:
FreeMarker提供两种类型的插值:
1. **通用插值**: `${expr}`,根据表达式`expr`的结果进行输出。如果结果是字符串,则直接输出;如果是数字,则按默认格式输出。
2. **数字格式化插值**:`#{expr}`或`#{expr;format}`,允许对数字进行特定格式的显示。
对于通用插值,还有以下几种情况:
- 字符串值:直接输出表达式结果。
- 数字值:默认按照数字格式输出。
- `null`值:输出空字符串。
- 其他对象:调用对象的`toString()`方法输出。
FreeMarker的灵活性在于它能够结合数据模型动态地生成内容,使得开发者能够创建出高度定制化的输出。通过熟练掌握FreeMarker的这些基本语法和规则,你可以创建出复杂的模板,满足各种需求,尤其是在构建动态网站或邮件生成等场景下。
2015-08-31 上传
2023-05-05 上传
2023-07-25 上传
2023-07-13 上传
2024-07-19 上传
2023-06-09 上传
2023-07-27 上传
2023-06-03 上传
2023-07-27 上传
![](https://profile-avatar.csdnimg.cn/bed43ac73b144d3bba240fcb7c77c4a6_newer1221.jpg!1)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/user-vip.1c89f3c5.png)
newer1221
- 粉丝: 1
- 资源: 35
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景