FreeMarker教程详解:模板、规则与实例解析

需积分: 2 1 下载量 5 浏览量 更新于2024-07-18 收藏 50KB DOCX 举报
"FreeMarker是一种基于模板的Java库,用于生成动态内容,常用于Web开发。本手册包含三个部分:FreeMarker模板、FreeMarker规则和FreeMarker实例,旨在帮助学习者掌握这一技术。 第一篇 FreeMarker模板 FreeMarker模板与HTML页面相似,由四个基本元素构成: 1. 文本:这部分内容将直接被输出到最终生成的文档中。 2. 注释:使用`<#---->`格式,这些内容不会出现在最终输出中。 3. 插值:`${}`或`#{}`包裹的部分会被数据模型中的数据替换并输出。 4. FTL指令:FreeMarker特有的指令,如`<#list>`,它们不会被输出,而是执行相应的操作。 例如: ```html <html> <head> <title>Welcome!</title> </head> <body> <#-- 注释部分 --> <#-- 下面使用插值 --> <h1>Welcome${user}!</h1> <p>Wehavetheseanimals: <ul> <#-- 使用FTL指令 --> <#list animals as being> <li>${being.name}for${being.price}Euros </#list> </ul> </body> </html> ``` 第二篇 FreeMarker规则 1. FTL指令规则: FreeMarker的指令使用FTL标签,类似于HTML标签,有三种形式: - 开始标签:`<#directivename parameter>` - 结束标签:`</#directivename>` - 空标签:`<#directivename parameter/>` 用户定义的指令前应使用`@`而非`#`。 正确的嵌套是必须的,错误的使用会导致错误消息,且FTL标签内的空白字符会被忽略。 2. 插值规则: FreeMarker有两种类型的插值: - 通用插值:`${expr}`,根据表达式的类型决定输出。如果是字符串,直接输出;如果是数字,则按照默认格式(通过`#setting`指令设定)转化为文本。 - 数字格式化插值:`#{expr}`或`#{expr;format}`,可以对数字进行格式化输出。 通用插值的四种情况: - 字符串值:输出表达式的结果。 - 数字值:转换为文本,遵循默认的数字格式。 - `null`:输出空字符串。 - 其他对象:调用`toString()`方法输出。 本手册通过详细讲解FreeMarker的模板结构、规则和实例,旨在帮助读者理解如何有效地使用FreeMarker生成动态内容。在实际应用中,FreeMarker能够灵活地结合后端数据,生成定制化的HTML页面或其他文本格式,极大地提高了Web应用的效率和可维护性。"
391 浏览量