Freemarker模板语言详解:语法与插值规则

需积分: 12 1 下载量 37 浏览量 更新于2024-10-16 收藏 89KB DOC 举报
"Freemarker是一种强大的模板引擎,常用于Java应用中的视图层渲染。它允许开发者编写模板文件,将静态模板与动态数据结合,生成最终的HTML或者其他格式的输出。本文档详细介绍了Freemarker的语法、标签使用以及插值规则,旨在帮助开发者更好地理解和使用这一技术。 Freemarker模板文件主要包括四类元素:文本、注释、插值和FTL指令。文本部分直接输出到最终生成的文档中;注释以<#---->形式存在,不会出现在输出中;插值,如${}或#{},用于替换数据模型中的值;FTL指令是FreeMarker特有的控制结构,它们以#开头,类似于HTML标签,但具有更丰富的功能。 FTL标签分为开始标签、结束标签和空标签,与HTML标签类似。在某些情况下,如果指令是用户自定义而非内建的,#会被替换为@。标签使用需遵循正确的嵌套规则,错误的使用会导致错误消息而非模板输出。FreeMarker会忽略FTL标签内的空白字符,并且<, />和指令名称之间不允许有空白。 插值是FreeMarker中的核心特性,有两种主要形式:通用插值和数字格式化插值。通用插值以${expr}表示,根据表达式的结果类型有不同的处理方式: 1. 字符串值:直接输出表达式结果。 2. 数字值:默认按数值格式转换并输出。可以通过内建的字符串函数进行格式化,例如设置货币、数字、百分比等格式。 3. 日期值:同样依赖于默认格式,可以使用#setting指令设置格式,并通过?string.date、?string.time或?string.datetime进行格式化。 举例来说,可以设置数字格式,然后输出不同格式的数字: <#set number_format="currency"/> <#assign answer=42/> 输出结果可能包括: - $42.00(默认货币格式) - $42.00(字符串形式,与默认相同) - 42(纯数字形式) - $42.00(货币格式) - 4,200%(百分比格式) 总结起来,Freemarker提供了一套灵活的模板语言,通过组合使用文本、注释、插值和指令,可以构建出复杂的动态页面。了解并熟练掌握这些语法和规则,能够帮助开发者高效地创建和维护模板,实现与后台数据的无缝对接,生成定制化的输出内容。"