Freemarker常用语法全解析:插值、条件判断与内置函数
5星 · 超过95%的资源 需积分: 50 181 浏览量
更新于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的常见语法,将有助于您在实际开发中高效地编写模板,实现动态内容的灵活生成,提高开发效率。无论是简单的变量展示还是复杂的逻辑处理,这些基础语法都是不可或缺的基石。
2532 浏览量
2182 浏览量
124 浏览量
1055 浏览量
149 浏览量
231 浏览量
129 浏览量
277 浏览量
江南等风起
- 粉丝: 1
- 资源: 21
最新资源
- Save Workspace to Struct:此功能允许将当前工作区中的所有变量保存到结构体数组中-matlab开发
- geojs-storm:GeoSJ Storm示例
- shush
- pablopunk:天哪,它的工作原理
- 广义真值表:生成“真值表”,其中列对应于任意碱基混合中的数字。-matlab开发
- 乡镇2013年第一季度工作总结
- PartyPlanner_Mobile
- PHP168 仿快车模板
- SuperStroke:笔画输入法练习
- ekyc
- 经济技术开发区2013年工作总结及2014年工作思路
- potatoCHIP:Durpa Nimrod实验
- worksheet.rar
- Rate-My-Professor-Vuejs
- LBS^2 loleg模板
- little-bear:Node.js Web框架