`

Freemarker的内置函数及用法 (转载)

阅读更多
在我们应用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。以上方法在我的另一篇博客Freemarker中如何遍历List有详细的应用,感兴趣的朋友可以参考。

二、          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>

三、          操作字符串函数
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’?cap_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 用于将字符串中的<、>、&和“替换为对应得&lt;&gt;&quot:&amp
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常用内置函数详解 #### 一、概述 Freemarker是一款强大的模板...掌握这些内置函数的使用方法不仅能够提高开发效率,还能使得模板代码更加简洁、易读。希望本文能帮助大家更好地理解和运用Freemarker。

    freemarker内置函数

    本篇将深入讲解Freemarker的内置函数,结合实际例子,帮助你更好地理解和运用这些功能。 一、变量与表达式 在Freemarker中,变量的引用使用`${}`,例如 `${name}` 将输出变量name的值。表达式可以是简单的变量引用...

    freemarker 内置的几个处理

    本篇文章将深入探讨FreeMarker内置的几个处理方法及其应用场景。 1. **变量表达式**: FreeMarker中的基础元素是变量表达式 `${}`,它用于在模板中显示变量的值。例如,`${name}` 会输出与`name`关联的数据模型中...

    freemarker 自定义freeMarker标签

    3. 使用自定义标签:在模板文件中,你可以像使用内置标签一样使用你的自定义标签。例如,如果你注册了一个名为`myCustomTag`的自定义指令,你可以在模板中这样使用:`...

    超强freemarker使用总结,有示例有讲解,可做快速查询手册!!

    接下来我们通过一个具体的示例来理解 Freemarker 的使用方法: ```html &lt;title&gt;Welcome! &lt;!-- 注释部分 --&gt; &lt;h1&gt;Welcome ${user}! &lt;p&gt;We have these animals: ${being.name} for ${being.price} Euros...

    Freemarker教程及jar包

    3. **内置函数和指令**:掌握Freemarker提供的各种内置函数,如`?html`用于转义HTML字符,`&lt;#assign&gt;`用于声明和赋值变量。 4. **数据模型**:理解如何创建和组织数据模型,将Java对象映射到模板变量。 5. **模板...

    freemarker Demo 适用于freemarker初学

    这个"freemarker Demo"项目应该包含了基本的模板文件、Struts2配置以及相关的Java代码,通过实际运行和修改这些文件,初学者可以更好地理解Freemarker的工作原理和使用方法。在学习过程中,可以逐步尝试不同的表达式...

    freemarker-2.3.23jar

    4. **函数和方法**:Freemarker支持自定义函数和方法,可以使用内置的函数库,如字符串操作、数学计算等,也可以扩展自定义函数来满足特定需求。 5. **模板继承和导入**:通过`&lt;#import&gt;`和`&lt;#extends&gt;`,模板可以...

    freemarker

    4. **内置函数(Built-in Functions)**:Freemarker提供了许多内置函数,如`?html`(防止XSS攻击)、`?length`(获取数组或列表长度)等,可以方便地在模板中处理数据。 5. **变量(Variables)**:在模板中,你...

    freemarker&velocity的使用

    Freemarker和Velocity是两种广泛使用的模板引擎,它们在Java Web开发中扮演着重要的...通过阅读提供的"freemarker语法.doc"文档,你可以深入了解Freemarker的详细语法和使用方法,进一步提升你在这一领域的专业技能。

    freemarker.jar用于jdk1.8下使用

    4. **内置函数和指令**:Freemarker提供了一系列内置函数和指令,如`?html`用于防止XSS攻击,`&lt;#if&gt;`、`&lt;#else&gt;`、`&lt;#foreach&gt;`等用于控制流程。这些功能增强了模板的灵活性和可编程性。 5. **国际化支持**:...

    新手理解FreeMarker的Project

    - **内置函数**:如`length()`计算长度,`join()`连接字符串等,文档`内置函数及用法.doc`应详细阐述了这些函数的使用。 4. **创建简单Project** - **配置FreeMarker**:在Spring Boot或传统Servlet应用中,需要...

    FreeMarker实例教程,手把手教你FreeMarker的方方面面

    - **内建函数参考文档**:提供了FreeMarker内置函数的详尽列表和使用说明。 - **指令参考文档**:列举了FreeMarker的所有指令及其语法说明。 以上知识点覆盖了FreeMarker的主要方面,通过本教程的学习,读者不仅...

    freemarker及jeecms标签使用学习文档

    - `JEECMS模板置标使用手册(重新整理版).docx`:详细介绍了Jeecms模板标签的使用方法和技巧,对于Jeecms开发者来说是宝贵的参考资料。 通过这些文档的学习,你将能够熟练地运用Freemarker来编写模板,以及在Jeecms...

    FreeMarker

    5. **日期和数字格式化**:FreeMarker 提供了内置的方法来格式化日期和数字,如 `${date?string("yyyy-MM-dd")}` 可以将日期对象转换为指定格式的字符串。 6. **宏**:宏是可重用的模板片段,类似于函数。通过`...

    FreeMarker_2.3.23 中文

    2.3.23的手册则可能增加了新版本的更新日志、新特性的介绍和使用方法,以及可能的API变更。 学习FreeMarker的关键在于理解其模板语法和如何与后端代码交互。通过阅读手册,开发者可以掌握如何编写模板,如何将Java...

    freemarker资料集

    5. **内置函数及用法**: FreeMarker提供了丰富的内置函数,如`date`, `number`, `string`等类型的操作,以及`join`, `length`, `sort`, `first`, `last`等集合操作。例如,`&lt;#list users as user&gt; ${user.name?cap...

    Velocity 和 FreeMarker区别

    主要原因是FreeMarker内置了更多的功能,例如自动转义机制、丰富的内置函数等,这使得开发者无需额外编写工具类或方法即可完成许多常见的任务。而使用**Velocity**时,为了达到类似的效果,则可能需要开发者自己编写...

Global site tag (gtag.js) - Google Analytics