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 用于将字符串中的< 、> 、& 和"替换为对应得<>":&
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 中的运算符优先级如下(由高到低排列):
1,一元运算符:!
2,内建函数:?
3,乘除法:*, / , %
4,加减法:- , +
5,比较:> , < , >= , <= (lt , lte , gt , gte)
6,相等:== , = , !=
7,逻辑与:&&
8,逻辑或:||
9,数字范围:..
FreeMarker 小结的更多相关文章
- FreeMarker模板使用小结
手册写的不错,忘记的时候可以翻翻n(*≧▽≦*)n --------------------------------------------分割线--------------------------- ...
- spring源码分析之freemarker整合
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页.电子邮件.配置文件.源代码等)的通用工具. 它不是面向最终用户的,而是一个Java类库,是一款程 ...
- Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化
模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则 ...
- Freemarker常用技巧(三)
freemarker模板解析过程 例如:一个freemarker表达式<body> ${hello} </body>,会被解析成三个部分,分别是<body>${he ...
- SpringMVC源码情操陶冶-FreeMarker之web配置
前言:本文不讲解FreeMarkerView视图的相关配置,其配置基本由FreeMarkerViewResolver实现,具体可参考>>>SpringMVC源码情操陶冶-ViewRe ...
- FreeMarker 快速入门
FreeMarker 快速入门 FreeMarker是一个很值得去学习的模版引擎.它是基于模板文件生成其他文本的通用工具.本章内容通过如何使用FreeMarker生成Html web 页面 和 代码自 ...
- spring boot ----> 常用模板freemarker和thymeleaf
===========================freemarker=================================== freemarker 官网:https://freem ...
- freemarker中使用<@spring.*>标签实现国际化
freemarker实现国际化使用自定义指令<@spring>实现,通过@符号可以看出是自定义的指令,在哪里定义的呢? 路径如下:org/springframework/spring-we ...
- Spring Boot 集成 FreeMarker 详解案例(十五)
一.Springboot 那些事 SpringBoot 很方便的集成 FreeMarker ,DAO 数据库操作层依旧用的是 Mybatis,本文将会一步一步到来如何集成 FreeMarker 以及配 ...
随机推荐
- EasyUI Messager 消息框
通过 $.messager.defaults 重写默认的 defaults. 消息框(messager)提供不同样式的消息框,包括警示(alert).确认(confirm).提示(prompt).进展 ...
- cursor属性
cursor光标类型 auto default none context-menu help pointer progress wait cell crosshair text vertical-te ...
- mysql 时间
显示当前时间: mysql> select now(); +---------------------+ | now() | +---------------------+ | -- :: | ...
- 【锋利的Jquery】读书笔记一
封面镇楼: 读这本书应该是7月份,二周读完,经典的好书,一直没怎么复习.so....温故而知新下. 一.jquery的风格 链式风格 <div class="box"> ...
- linode开通Paypal付款方式
vps服务器品牌linode近期新闻不断.今天是linode成立13周年,全部套餐免费升级翻倍内存,所以现在linode最低配置套餐内存是2GB,每月2TB流量,40Gb机房带宽,非常超值. 长期以来 ...
- iOS 隐藏导航栏 隐藏状态栏
1导航栏 self.navigationController.navigationBarHidden = YES; 2 状态栏 [[UIApplication sharedApplication] s ...
- 用 Python 脚本实现对 Linux 服务器的网卡流量监控
*这篇文章网上已经有相关代码,为了加深印象,我做了相关批注,希望对朋友们有帮助 工作原理:基于/proc文件系统 Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新 ...
- LINQ To SQL 处理 DateTime?
LINQ To SQL 处理 DateTime? 类型 例子: 搜索栏含有最后扫描时间的日期(DateTime?)与多个其他条件(String) 现在需要写一个查询 : 查询符合最后扫描的日期的查询 ...
- phpQuery 无法解析 html 结构
有时候解析一段 HTML 代码时 phpQuery 无法解析原因: 可能是缺少类似下面的 meta 信息,在带解析的字符串任意位置添上即可 : <meta http-equiv="Co ...
- meta常用标签总结
meta元素共有三个可选属性(http-equiv.name和scheme)和一个必选属性(content),content定义与 http-equiv 或 name 属性相关的元信息 可选属性 属性 ...