`

freemark内置函数

 
阅读更多

在我们应用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’ ?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内置函数[文].pdf

    Freemarker内置函数详解 Freemarker是一种基于模板的网页生成技术,内置了大量实用的函数,以下是Freemarker内置函数的详细说明: Sequence内置函数 1. `sequence?first`:返回sequence的第一个值。 2. `sequence...

    FreeMarker内置函数

    在FreeMarker中,内置函数提供了一套便捷的工具,帮助我们在模板中执行各种操作,例如字符串处理、日期时间格式化等。 1. **字符串操作函数** - `join`: 将数组或列表中的元素连接成一个字符串,通常用于生成CSV...

    freemarker内置函数和数字格式化.doc

    ### 一、Sequence的内置函数 1. `sequence?first`:获取Sequence的第一个元素。 2. `sequence?last`:获取Sequence的最后一个元素。 3. `sequence?reverse`:反转Sequence的顺序。 4. `sequence?size`:返回...

    FreeMark Jar包 包括 中文 官方文档

    3. **指令**:FreeMark支持一系列内置指令,如`&lt;#assign&gt;`用于创建变量,`&lt;#function&gt;`用于定义函数,`&lt;#import&gt;`和`&lt;#include&gt;`用于导入其他模板。 4. **配置**:FreeMark可以通过`freemarker.properties`文件进行...

    freemark开发指南详解

    - **内置函数**:Freemarker提供了很多内置函数,如字符串操作、日期处理等。 - **模板继承**:通过`&lt;#extends&gt;`和`&lt;#block&gt;`实现模板的继承,方便页面布局的复用。 5. **最佳实践** - **模板设计**:保持模板...

    freemark 资料学习

    Freemarker有内置的函数库(如字符串处理、日期时间操作),还可以添加自定义函数库,增强模板的功能。 3. 缓存机制: 对于频繁使用的模板,Freemarker可以缓存编译后的模板类,提高性能。 4. 国际化支持: ...

    Freemark基础入门+深入

    member_function(...)` 使用内置函数对变量进行转换。 - `stringA[M .. N]` 获取字符串的子串。 - `{key1: value1, key2: value2, ...}` 直接定义哈希表。 - `[item0, item1, item2, ...]` 创建序列。 - `hash...

    freemark_java_test.rar_freeMark ja_freemark_java freemark

    5. **内置函数**:如`&lt;#list&gt;`用于遍历集合,`&lt;#escape&gt;`进行字符串转义,`&lt;#t&gt;`打印当前时间等。 **模板设计模式**: - **继承模板**:通过`&lt;#include&gt;`指令实现模板间的继承,提高代码复用。 - **宏**:类似于...

    test_Freemark freemark的基础入门小程序

    Freemarker支持内置函数,如`length()`用于获取列表长度,`?html`用于防止XSS攻击等。此外,也可以自定义方法,通过`&lt;#function&gt;`标签实现。 5. **模板继承与导入**: 使用`&lt;#include&gt;`标签可以导入其他模板,而`...

    freemark学习资料(入门基础)

    五、内置函数和指令 FreeMarker提供了许多内置函数和指令,如`escape_html`(HTML转义)、`length`(获取数组或列表长度)等。还有一些高级功能,如宏(自定义模板片段)、导入外部模板等。 六、模板继承和导入 ...

    freemark 2.3.19 中文教程

    4. **内置函数(Built-in Functions)**: 如`?html`用于转义HTML特殊字符,`?length`获取数组或集合的长度。 **三、FreeMarker与Java整合** 1. **Spring MVC集成**: Spring框架提供了方便的FreeMarker视图解析器,...

    freemark官方插件2

    3. **内置函数(Built-in Methods)**:例如`html`, `url`等,用于对数据进行转换和处理。 4. **宏(Macros)**:类似于函数,可以复用模板代码片段。 5. **模板继承(Template Inheritance)**:通过`#extends`和`#...

    freemark 手册,入门文档

    3. **内置函数**:FreeMarker提供了许多内置函数,如`date`用于格式化日期,`list`用于转换数组或列表,`escape`系列函数用于转义特殊字符。 4. **模板继承与导入**:通过`&lt;#macro&gt;`定义宏,可以创建可重用的模板...

    freemark+学习资料

    FreeMarker提供了许多内置函数,如`?html`用于防止XSS攻击,`?length`获取数组或集合的长度,`?upper_case`、`?lower_case`转换字符串大小写等。 6. **数据模型和作用域**: 数据模型包括全局变量、局部变量和...

    freemark2.36

    3. **内置函数和方法**:FreeMarker内建了一系列的函数和方法,如`default`用于提供默认值,`html`用于HTML转义,`list`用于转换集合等。 4. **模板继承和导入**:允许模板之间进行继承和导入,以实现代码重用和结构...

    FreeMark全部资料(14个文档)

    FreeMarkup的语法主要包括变量引用、控制结构(如if/else、for循环)、内置函数等。例如,`${variable}`用于输出变量的值,`&lt;#if condition&gt;`和`&lt;#else&gt;`用于条件判断,`&lt;#list items as item&gt;`用于遍历列表。 3. ...

    freemark开发指南

    - **浮点取整**:使用内置函数进行浮点数的四舍五入或截断。 - **默认值**:为变量设置默认值,避免空值时出错。 - **null判断**:检查对象是否为null,避免空指针异常。 - **日期格式化**:使用内置的日期时间...

    freemark实例

    9. **日期和格式化**:FreeMarker提供了一系列内置函数,例如`date?string("yyyy-MM-dd")`,可以将日期对象转换为指定格式的字符串。 10. **国际化(i18n)支持**:通过`&lt;#t&gt;`和`&lt;#lt&gt;`标签,FreeMarker可以轻松地...

    freemark小例子仅供参考学习

    - **内置函数**:例如`&lt;#list&gt;`、`&lt;#escape&gt;`、`&lt;#t&gt;`等,提供对字符串处理、转换等功能。 3. **创建FreeMarker模板** - 在`prj_testftl`项目中,可能包含`.ftl`(FreeMarker Template Language)文件,它们是...

Global site tag (gtag.js) - Google Analytics