`
xiaotian_ls
  • 浏览: 308022 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

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

 时间格式化: ${book.date?string('yyyy-MM-dd')}

判断长度:<#if oa.content?length gt= 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

 

转自:http://blog.163.com/chengwei_1104/blog/static/53645274201010246343445/

分享到:
评论

相关推荐

    freemarker_常用内置函数

    ### Freemarker常用内置函数详解 #### 一、概述 Freemarker是一款强大的模板...掌握这些内置函数的使用方法不仅能够提高开发效率,还能使得模板代码更加简洁、易读。希望本文能帮助大家更好地理解和运用Freemarker。

    freemarker内置函数

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

    freemarker 内置的几个处理

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

    freemarker 自定义freeMarker标签

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

    Freemarker教程及jar包

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

    超强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 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的Project

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

    freemarker&velocity的使用

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

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

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

    freemarker.jar用于jdk1.8下使用

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

    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