Freemarker常用语法全解析:插值、条件判断与内置函数
5星 · 超过95%的资源 需积分: 50 148 浏览量
更新于2024-09-09
1
收藏 20KB DOCX 举报
Freemarker (FTL) 是一种强大的模板语言,常用于服务器端网页动态内容生成,它允许程序员在Java应用程序中嵌入模板代码。本文档全面介绍了Freemarker中的常见语法,以便开发者更好地理解和运用这一工具。
1. **插值表达式**:
- **通用插值**:`${expr}`用于简单的变量赋值和输出,可以直接插入变量的值。
- **数字格式化插值**:`#{expr}` 或 `#{expr;format}` 可以对数字进行定制格式化,如日期格式化为`yyyy-MM-dd`,货币格式化 `$20.00`,百分比格式`20%`。
2. **条件语句**:
- `${book.name?if_exists}`:如果`book.name`存在,则显示该值;否则不输出。
- `${book.name?default('xxx')}`:如果`book.name`为空,则输出默认值`xxx`。
- `${book.name!"xxx"}`:同样用于默认值,如果`book.name`不存在或为空,则显示`xxx`。
- 通过`?string('yyyy-MM-dd')`格式化日期,`?string.number`、`?string.currency`和`?string.percent`处理数字格式。
3. **布尔值与比较运算符**:
- 使用`<#if(x>y)`进行条件判断,可以使用`lt`、`lte`、`gt`和`gte`进行大小比较,或者使用括号明确优先级。
- `?`符号区分函数调用和属性访问,例如`<#if condition>`用于逻辑判断。
4. **内置函数**:
- 对字符串的操作:如`html`进行HTML编码,`cap_first`首字母大写,`lower_case`全小写,`trim`去除前后空格。
- 对于Sequences(序列),如`size`获取元素数量。
- 对数字的处理:`int`取整,如`-1.9?int`返回-1。
- 集合操作:可以像数组一样通过下标索引访问。
5. **逻辑控制结构**:
- `if`, `<#elseif>`和`<#else>`语句用于条件分支,适用于多条件判断。
- `?`用于空值判断,如`<#if book.name??>`检查`book.name`是否为空。
- `switch`语句根据`value`执行多个`case`中的一个,`<#break>`跳出当前`case`,`<#default>`处理所有未匹配的情况。
6. **区间定义**:
- 快速创建一个包含整数范围的集合:`<#assign l=0..100/>`,这里的`..`表示从左到右的连续范围。
掌握这些Freemarker的常见语法,将有助于您在实际开发中高效地编写模板,实现动态内容的灵活生成,提高开发效率。无论是简单的变量展示还是复杂的逻辑处理,这些基础语法都是不可或缺的基石。
2018-10-31 上传
2012-03-29 上传
2013-07-08 上传
2011-12-15 上传
2012-05-23 上传
2023-06-09 上传
2012-11-24 上传
2019-04-02 上传
江南等风起
- 粉丝: 1
- 资源: 21
最新资源
- 全国江河水系图层shp文件包下载
- 点云二值化测试数据集的详细解读
- JDiskCat:跨平台开源磁盘目录工具
- 加密FS模块:实现动态文件加密的Node.js包
- 宠物小精灵记忆配对游戏:强化你的命名记忆
- React入门教程:创建React应用与脚本使用指南
- Linux和Unix文件标记解决方案:贝岭的matlab代码
- Unity射击游戏UI套件:支持C#与多种屏幕布局
- MapboxGL Draw自定义模式:高效切割多边形方法
- C语言课程设计:计算机程序编辑语言的应用与优势
- 吴恩达课程手写实现Python优化器和网络模型
- PFT_2019项目:ft_printf测试器的新版测试规范
- MySQL数据库备份Shell脚本使用指南
- Ohbug扩展实现屏幕录像功能
- Ember CLI 插件:ember-cli-i18n-lazy-lookup 实现高效国际化
- Wireshark网络调试工具:中文支持的网口发包与分析