应用Freemarker 过程中,经常会操作例如字符串,数字,集合等,却不清楚Freemrker 有没有类似于Java 一样有相关的类及方法。在本文当中,我将向大家详细的介绍Freemarke 的内置函数及用法,以便能帮助大家更熟练的应用Freemarker 完成项目开发。
一、 Sequence 的内置函数
1. sequence?first 返回sequence 的第一个值。
2. sequence?last 返回sequence 的最后一个值。
3. sequence?reverse 将sequence 的现有顺序反转,即倒序排序
4. sequence?size 返回sequence 的大小
5. sequence?sort 将sequence 中的对象转化为字符串后顺序排序
6. sequence?sort_by(value) 按sequence 中对象的属性value 进行排序
注意:Sequence 不能为null 。
二、Hash 的内置函数
1. hash?keys 返回hash 里的所有key, 返回结果为sequence
2. hash?values 返回hash 里的所有value, 返回结果为sequence
例如:
<#assign user={“name”: “hailang”, “sex”: “man”}>
<#assign keys=user?keys>
<#list keys as key>
${key}=${user[key]}
</#list>
<#if promo??> //判断promo是否存在
<#list promo as pro>
<#if pro.content?length gte 10>
${pro.content[0..10]}...//截取输出文字的长度
<#else>
${pro.content}
</#if>
</#list>
</#if>
三、 操作字符串函数
1.substring (start,end )从一个字符串中截取子串
start: 截取子串开始的索引,start 必须大于等于0 ,小于等于end
end: 截取子串的长度,end 必须大于等于0 ,小于等于字符串长度,如果省略该参数,默认为字符串长度。
例子:
${‘str’?substring(0)} à 结果为str
${‘str’?substring(1)} à 结果为tr
${‘str’?substring(2)} à 结果为r
${‘str’?substring(3)} à 结果为
${‘str’?substring(0,0)} à 结果为
${‘str’?substring(0,1)} à 结果为s
${‘str’?substring(0,2)} à 结果为st
${‘str’?substring(0,3)} à 结果为str
2. cap_first 将字符串中的第一个单词的首字母变为大写。
${‘str’ ?cap_first} à 结果为Str
3. uncap_first 将字符串中的第一个单词的首字母变为小写。
${‘Str’ ?uncap_first} à 结果为str
4. capitalize 将字符串中的所有单词的首字母变为大写
${‘str’ ? capitalize} à 结果为STR
5.date,time ,datetime 将字符串转换为日期
例如:
<#assign date1=”2009-10-12”?date(“yyyy-MM-dd”)>
<#assign date2=”9:28:20”?time(“HH:mm:ss”)>
<#assign date3=” 2009-10-12 9:28:20”?time(“HH:mm:ss”)>
${date1} à 结果为2009-10-12
${date2} à 结果为9:28:20
${date3} à 结果为2009-10-12 9:28:20
注意:如果指定的字符串格式不正确将引发错误。
6. ends_with 判断某个字符串是否由某个子串结尾,返回布尔值。
${ “string”?ends_with(“ing”)?string} 返回结果为true
注意:布尔值必须转换为字符串才能输出
7. html 用于将字符串中的< 、> 、& 和“替换为对应得<>":&
8. index_of (substring,start )在字符串中查找某个子串,返回找到子串的第一个字符的索引,如果没有找到子串,则返回-1 。
Start 参数用于指定从字符串的那个索引处开始搜索,start 为数字值。
如果start 大于字符串长度,则start 取值等于字符串长度,如果start 小于0 , 则start 取值为0 。
${“string”?index_of(“in”) à 结果为3
${“string”?index_of(“ab”) à 结果为-1
9. length 返回字符串的长度 ${“string”?length} à 结果为6
10.lower_case 将字符串转为小写
${“STRING”?lower_case} à 结果为string
11. upper_case 将字符串转为大写
${“string”?upper_case} à 结果为STRING
12. contains 判断字符中是否包含某个子串。返回布尔值
${“string”?contains(“ing”)?string} à 结果为true
注意:布尔值必须转换为字符串才能输出
13. number 将字符串转换为数字
${“111.11”?number} à 结果为111.11
14.replace 用于将字符串中的一部分从左到右替换为另外的字符串。
${“strabg”?replace(“ab”,”in”)} à 结果为string
15. split 使用指定的分隔符将一个字符串拆分为一组字符串
<#list “This|is|split”?split(“|”) as s>
${s}
</#list>
结果为:
This
is
split
16. trim 删除字符串首尾空格 ${“ String ”?trim} à 结果为String
四、操作数字
1. c 用于将数字转换为字符串
${123?c} à 结果为123
2. string 用于将数字转换为字符串
Freemarker 中预订义了三种数字格式:number,currency (货币)和percent( 百分比) 其中number 为默认的数字格式转换
例如:
<#assign tempNum=20>
${tempNum}
${tempNum?string.number} 或${tempNum?string(“number”)} à 结果为20
${tempNum?string.currency} 或${tempNum?string(“currency”)} à 结果为¥20.00
${tempNum?string. percent} 或${tempNum?string(“percent”)} à 结果为2,000%
五、操作布尔值
string 用于将布尔值转换为字符串输出
true 转为“true” ,false 转换为“false”
foo?string(“yes”,”no”) 如果布尔值是true, 那么返回“yes ”, 否则返回no
相关推荐
Freemarker内置函数详解 Freemarker是一种基于模板的网页生成技术,内置了大量实用的函数,以下是Freemarker内置函数的详细说明: Sequence内置函数 1. `sequence?first`:返回sequence的第一个值。 2. `sequence...
Freemarker 常用内置函数 Freemarker 是一个基于 Java 的模板引擎,它提供了一些非常有用的内置函数,可以帮助我们快速开发和生成动态内容。在本文中,我们将详细介绍 Freemarker 的一些常用内置函数。 Sequence ...
总结起来,Freemarker的内置函数极大地增强了模板语言的功能,使得在生成动态内容时能够灵活地处理数据。熟练掌握这些函数将有助于提高开发效率,确保输出内容的准确性和美观性。在实际应用中,可以根据具体需求灵活...
本篇将深入讲解Freemarker的内置函数,结合实际例子,帮助你更好地理解和运用这些功能。 一、变量与表达式 在Freemarker中,变量的引用使用`${}`,例如 `${name}` 将输出变量name的值。表达式可以是简单的变量引用...
根据提供的文件信息,我们可以深入探讨Freemarker中的内置函数,主要关注数字、字符串以及日期的格式化处理。Freemarker是一种强大的模板引擎,被广泛应用于Web开发和其他领域中,用于生成动态HTML页面或其他类型的...
三、Freemarker内置函数 1. `?html`:用于防止XSS攻击,将变量内容转义为安全的HTML。 2. `?string`:将对象转换为字符串,即使对象为null也会返回空字符串。 3. `?length`:获取列表或字符串的长度。 4. `?exists`...
- **内建函数参考文档**:提供了FreeMarker内置函数的详尽列表和使用说明。 - **指令参考文档**:列举了FreeMarker的所有指令及其语法说明。 以上知识点覆盖了FreeMarker的主要方面,通过本教程的学习,读者不仅...
下面将详细介绍 FreeMarker 的思想、基本语法、内置函数等相关知识点。 一、FreeMarker 思想 FreeMarker 的思想是基于模板语言的,模板语言是一种特殊的编程语言,用于生成文本输出。FreeMarker 模板语言的主要...
FreeMarker还提供了一些内建函数来转换输出,可以在任何变量后紧跟?,?后紧跟内建函数,就可以通过内建函数来轮换输出变量.下面是常用的内建的字符串函数: html:对字符串进行HTML编码 cap_first:使字符串第一个字母...
本篇文章将深入探讨FreeMarker内置的几个处理方法及其应用场景。 1. **变量表达式**: FreeMarker中的基础元素是变量表达式 `${}`,它用于在模板中显示变量的值。例如,`${name}` 会输出与`name`关联的数据模型中...
此外,FreeMarker还支持自定义函数,它们类似于JavaScript中的函数,可以接收参数并返回值。创建自定义函数的方式与自定义指令类似,只是需要实现`TemplateMethodModelEx`接口。 为了调试和优化自定义标签,了解...
8. **内置函数和方法**:Freemarker内置了如`default`、`escape`、`size`等函数,以及对象的`?`操作,如`?exists`、`?non_null`等。 9. **错误和异常处理**:通过`<#try>`、`<#catch>`进行错误捕获和处理,确保模板...
Freemarker有许多内置的指令,如`include`用于包含其他模板,`import`用于导入宏库,`list`用于遍历集合等。同时,还可以自定义函数和宏来扩展功能。 10. **模板调试** Freemarker提供了一个调试模式,可以帮助...
FreeMarker提供了一系列内置函数,如`?html`用于转义HTML特殊字符,`?replace`进行字符串替换,`?upper_case`和`?lower_case`进行大小写转换。此外,还有算术操作符(+、-、*、/、%)、比较操作符(==、!=、<、>、...
4. **内置函数(Built-in Functions)**:Freemarker提供了许多内置函数,如`?html`(防止XSS攻击)、`?length`(获取数组或列表长度)等,可以方便地在模板中处理数据。 5. **变量(Variables)**:在模板中,你...