在用FreeMarker过程中,感觉FreeMarker的字符串,日期,集合等处理能力还是很强大的,上网搜了一些资料,整理如下,以便能帮助大家更熟练的应用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”?datetime(“HH:mm:ss”)>
<#assign date3=” 2009-10-12 9:28:20”?datetime(“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内置函数及用法的介绍,相信您已经对这些函数的有了一定的了解,希望本文能对您的开发有所帮助。由于时间仓促,有不足之处请您批评指正。

转载于:https://www.cnblogs.com/w1217/p/5972059.html

Freemarker 内置函数 数字、字符串、日期格式化用法介绍相关推荐

  1. Hive函数(内置函数(字符串函数,数学函数,日期函数,集合函数,条件函数,聚合函数,表生成函数)和自定义函数(自定义函数创建流程,临时函数,永久函数)))(四)

    Hive函数(内置函数和自定义函数) 一.内置函数 1.字符串函数 (1)ascii (2)base64 (3)concat (4)concat_ws (5)format_number (6)subs ...

  2. freemarker 内置函数

    freemarker 内置函数 一.Sequence的内置函数 1.     sequence?first 返回sequence的第一个值. 2.     sequence?last  返回seque ...

  3. c++内置函数实现字符串翻转(reverse,strrev,string 构造函数)

    c++内置函数实现字符串翻转(reverse,strrev,string 构造函数) 在写程序的时候,我们经常需要将字符串进行翻转.c++中内置的函数有不少个可以实现该功能. 1.strrev函数.( ...

  4. Freemarker内置函数使用

    在Freemarker应用中经常会遍历List获取需要的数据,并对需要的数据进行排序加工后呈现给用户. 那么在Freemarker中如何遍历List,并对List中数据进行适当的排序呢? 一. Fre ...

  5. 自学python第四课——字符串运算符、字符串内置函数、字符串常用方法总结

    第四课 字符串 单.双.三引号 直接赋值和用 input 赋值: "+"号和"*"号在字符串中的使用 in 和 not in 字符串的格式化 r 保留原格式,即 ...

  6. python字符串的内置函数_python——字符串内置函数

    当字符串本身就含有\n之类的,可以用转义符.行显示(在字符串引号前面加r).repr(str)三种方法. 字符串内置方法 字符串内置方法: 1. capitalize(...) S.capitaliz ...

  7. python十进制转八进制_Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)...

    使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x) Convert an integer num ...

  8. python 自定义进制转换,Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)...

    使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x) Convert an integer num ...

  9. MySQL内置函数中的日期和时间函数详解

    标题:MySQL函数大全 出处:俊的博客 时间:Sat, 14 Mar 2009 14:33:22 +0000 作者:hhj 地址:http://hhj.gx.cn/post/308/ 内容: lec ...

最新文章

  1. c# DllImport 错误处理的不足及解决办法
  2. SAMBA服务和FTP服务讲解(week3_day1)--技术流ken
  3. python中如何调用类_python如何调用java类
  4. [转]计算机视觉领域稍微容易中的期刊(第一版)
  5. java必学_Java基础系列之初识JAVA
  6. dotproject问题。
  7. Delphi多媒体设计之TMediaPlayer组件(三)
  8. JDK官网下载历史版本
  9. 动软代码生成器v2.78Mysql备注生成完美修复dll
  10. 007 JVM堆内存划分
  11. 昭通脱贫致富-农业大健康·林裕豪:从玉农业谋定“责任”
  12. 成功实现有线路由器和无线路由器连接上网
  13. word文档取消英文首字母大写
  14. mv背景html代码,深入浅出MV*框架源码(三):Moon的html-code实现
  15. WEB 9.jQuery
  16. PHP获取网页返回的JSON数据并在微信换行展示
  17. 物联网的云计算、雾计算、边缘计算和MIST计算的基本概念
  18. 论文投稿指南——中文核心期刊推荐(新闻事业)
  19. Android 屏幕适配 - 支持刘海屏
  20. win8.1安装office2016

热门文章

  1. 传真故障排除示例--编码不一致导致传真失败
  2. AppSettings和ConnectionStrings的使用。
  3. MYSQL大小写的约定
  4. PRML-github code使用两个小攻略
  5. linux下openssl编程
  6. 线程池配置合理线程数?
  7. 消息中间件之ActiveMQ 入门
  8. 页面导航的两种方式——声明式导航、编程式导航||vue-router编程式导航||router.push() 方法的参数规则
  9. java getSource()和 getActionCommand()
  10. JavaScript 技术篇-js只获取本节点text文本,不包含子节点