FreeMarker模板语言:标签、指令与插值详解

需积分: 34 6 下载量 169 浏览量 更新于2024-09-19 收藏 35KB DOC 举报
"FreeMarker模板语言的组成部分,包括文本、注释、插值和FTL指令,以及它们的使用规则和示例。" 在Web开发中,FreeMarker是一个流行的模板引擎,它允许开发者将静态模板与动态数据结合,生成HTML或其他类型的输出。以下是关于FreeMarker的一些关键知识点: 一、FreeMarker模板文件的四大部分: 1. 文本:这部分内容会被直接输出到最终生成的文档中。 2. 注释:以`<#---->`形式出现,用于在模板中添加开发者注解,这些注释不会出现在最终输出中。 3. 插值:通过`${..}`或`#{..}`表达式将数据模型中的值插入到输出中。 4. FTL指令:类似于HTML标签,但以`#`开头,如`<#if>`、`<#foreach>`等,用于控制模板的逻辑结构。 二、FTL指令规则: - 开始标签:`<#directivename parameters>` - 结束标签:`</#directivename>` - 空标签:`<#directivename parameters/>` - 用户自定义指令使用`@`符号而非`#`。 三、插值规则: 1. 通用插值: `${expr}` - 输出表达式的值,如果值为数字或日期,会自动格式化。 2. 数字格式化插值:`#{expr}` 或 `#{expr;format}` - 可以指定特定的数字格式。 插值的具体表现: a. 字符串值:直接输出表达式结果。 b. 数字值:默认按照设置的格式转换为文本,也可以使用内建函数进行格式化,如`string`、`string.number`、`string.currency`和`string.percent`。 c. 日期值:根据设置的格式转换为文本,可以使用内建的日期/时间函数,例如`datetime`,并可以指定多种格式,如`short`、`medium`、`long`、`full`等。 四、表达式: 表达式`expr`可以在插值和指令中使用,它可以是变量名、方法调用、算术运算、条件判断等,用于计算或获取数据模型中的值。 五、设置和配置: 通过`#setting`指令,可以全局或局部地设置FreeMarker的配置,例如数字和日期的默认格式。 举例来说,如果你有一个`price`变量,你可以这样使用插值: ```ftl <#setting number_format="currency"> <#assign price=42> ${price} <!-- 默认货币格式 --> ${price?string} <!-- 默认格式 --> ${price?string.number} <!-- 数字格式 --> ${price?string.currency} <!-- 货币格式 --> ${price?string.percent} <!-- 百分比格式 --> ``` FreeMarker的强大之处在于它提供了丰富的指令和表达式语法,使得开发者能够灵活地处理数据并生成复杂的动态内容。通过熟练掌握这些规则和用法,你可以创建出高效、可维护的模板代码。