Freemarker模板语言指南:语法与实战
需积分: 35 100 浏览量
更新于2024-09-16
收藏 12KB TXT 举报
"Freemarker常用语法"
Freemarker是一个强大的模板引擎,常用于Java Web应用中生成动态HTML、XML或其他格式的文本。它提供了一种简洁的语法,允许开发者在模板中混合业务数据和视图逻辑。以下是对标题和描述中提到的Freemarker常用语法的详细解释:
1. 对象输出与空值处理
- `${book.name}` 用于输出对象`book`的`name`属性值。
- `${book.name?if_exists}` 如果`name`存在则输出,否则不显示任何内容。
- `${book.name?default('xxx')}` 当`name`为空或不存在时,显示默认值`xxx`。
- `${book.name!"xxx"}` 类似于`?default`,但当`name`不存在时会抛出异常。
2. 数据格式化
- `${book.date?string('yyyy-MM-dd')}` 将`date`属性转换为指定格式的字符串,如'2022-01-01'。
- `${book?string.number}` 将`book`对象转换为数字字符串,例如'20'。
- `${book?string.currency}` 格式化为货币形式,例如'$20.00'。
- `${book?string.percent}` 格式化为百分比形式,例如'20%'。
3. 布尔值插入
- `<#assign foo = true/>` 定义变量`foo`并赋值为`true`。
- `${foo?string("yes", "no")}` 如果`foo`为`true`,输出'yes';如果为`false`,输出'no'。
4. 逻辑判断
- if-elseif-else 结构用于条件判断,如`<#if condition>...<#elseif condition2>...<#else>...<#endif>`。
- `??` 空值判断,如`<#if book.name??>`,检查`name`是否存在。
5. switch-case结构
- `<#switch value>` 用于基于不同情况执行不同代码块。
- `<#case refValue1>...<#break>` 当`value`等于`refValue1`时执行相应代码,`<#break>`用于跳出switch语句。
- `<#default>` 当没有匹配的`case`时执行的代码。
6. 循环读取
- `<#list sequence as item>` 用于遍历序列(如列表、数组),`item`是当前元素的别名。
- `<#if bookList?size=0>` 检查`bookList`的长度是否为0,如果是,则不执行循环。
- 示例:`<#list employees as e>${e_index}.${e.name}</#list>` 输出员工的索引和名字。
7. 宏/模板宏 (Macro)
- 宏是可重用的模板片段,可以通过`<#macro>`定义。
- `<#macro greet>` 定义名为`greet`的宏,如示例中的打招呼宏。
- 宏可以带参数,如`<#macro greet person>`,在调用时传递参数,如`<@greet 'John'/>`。
- 调用宏使用`@`符号,例如`<@greet person='Alice'/>`。
以上是Freemarker的一些基础语法,它们帮助开发者构建动态模板,实现数据与视图的分离,提高代码复用性和可维护性。在实际应用中,Freemarker还提供了更多高级特性,如内置函数、控制结构和自定义指令等,使得模板的编写更为灵活和强大。
点击了解资源详情
2010-04-09 上传
2012-09-29 上传
2009-07-09 上传
2012-05-23 上传
2012-03-29 上传
2012-08-06 上传
glost123123
- 粉丝: 1
- 资源: 12
最新资源
- 新代数控API接口实现CNC数据采集技术解析
- Java版Window任务管理器的设计与实现
- 响应式网页模板及前端源码合集:HTML、CSS、JS与H5
- 可爱贪吃蛇动画特效的Canvas实现教程
- 微信小程序婚礼邀请函教程
- SOCR UCLA WebGis修改:整合世界银行数据
- BUPT计网课程设计:实现具有中继转发功能的DNS服务器
- C# Winform记事本工具开发教程与功能介绍
- 移动端自适应H5网页模板与前端源码包
- Logadm日志管理工具:创建与删除日志条目的详细指南
- 双日记微信小程序开源项目-百度地图集成
- ThreeJS天空盒素材集锦 35+ 优质效果
- 百度地图Java源码深度解析:GoogleDapper中文翻译与应用
- Linux系统调查工具:BashScripts脚本集合
- Kubernetes v1.20 完整二进制安装指南与脚本
- 百度地图开发java源码-KSYMediaPlayerKit_Android库更新与使用说明