Freemarker模板语言完全指南

需积分: 12 11 下载量 99 浏览量 更新于2024-11-09 收藏 89KB DOC 举报
"本资源为Freemarker的语法完全手册,涵盖了Freemarker模板的四个主要组成部分:文本、注释、插值和FTL指令。手册详细介绍了Freemarker的FTL标签类型以及插值规则,包括通用插值和数字格式化插值的使用方法。" FreeMarker是一个强大的模板引擎,常用于Java应用中生成动态内容,如HTML页面。其模板语言简洁而强大,允许开发者通过特定语法与后台数据模型相结合,生成定制化的输出。 1. **文本**:模板中的普通文本会被原样输出到最终生成的文档中。 2. **注释**:以`<#---->`形式的注释不会出现在生成的文档中,用于开发者在模板中添加临时或解释性内容。 3. **插值**:插值是FreeMarker的核心特性,通过`${}`或`#{}`将数据模型中的变量或表达式替换并输出。其中 `${}` 适用于所有类型的数据,而 `#{}` 通常用于包含逻辑或控制结构。 - **通用插值**:表达式的结果会被转换为字符串输出。例如,数字、日期等非字符串类型的数据会根据设置的格式转换。 - **数字格式化插值**:使用 `#{expr}` 或 `#{expr;format}` 对数字进行格式化输出,可以设置不同的格式,如货币、数字、百分比等。 4. **FTL指令**:FreeMarker提供了多种内置指令,如`#set`、`#if`、`#foreach`等,它们以`<#...>`的形式存在,用于控制模板的逻辑流程。对于自定义指令,使用`@`代替`#`。 - 开始标签:`<#directivename parameter>` - 结束标签:`</#directivename>` - 空标签:`<#directivename parameter/>` 在使用FTL标签时,遵循XML的嵌套规则,确保正确闭合。FreeMarker会忽略标签内的空白字符,但不允许`<`, `/` 和指令名称之间有空白。 FreeMarker的插值规则允许灵活处理不同类型的数据。例如,对于数字插值,可以使用内建的字符串函数进行格式化,如设置货币格式: ```freemarker <#setting number_format="currency"/> <#assign answer = 42 /> ${answer} ${answer?string}<!-- the same as ${answer} --> ${answer?string.number} ${answer?string.currency} ${answer?string.percent} ``` 上述代码将输出: ``` $42.00 $42.00 42 $42.00 4,200% ``` 对于日期值,同样可以根据设置的格式转换输出。Freemarker语法完全手册提供了详尽的指南,帮助开发者高效地构建动态模板,实现与后端数据的完美结合。