FreeMarker开发资料(三)

本文深入探讨了FreeMarker模板引擎的104个核心功能,包括但不限于文本操作、日期时间处理、字符串操作、数字处理、排序、条件判断、循环、函数、变量访问等,全面展示了FreeMarker在模板开发中的强大能力。

71、chop_linebreak 切断换行符 

72、datetimedatetime 日期,时间,时间日期

 

73、ends_with结尾 

74、html HTML格式的转义文本

<用&lt替换;

>用&gt替换;

&用&amp替换;

"用&quot替换;

xhtml XHTML格式

字符串作为XHTML格式文本输出,下面这些:

<替换为&lt;

>替换为&gt;

&替换为&amp;

"替换为&quot;

'替换为&#39;  

xml XML格式

字符串作为XML格式文本输出,下面这些:

<替换为&lt;

>替换为&gt;

&替换为&amp;

"替换为&quot;

'替换为&apos;  

75、group 分组

76、index_of 索引所在位置   "abcabc"?index_of("bc", 2)会返回4。

77、last_index_of 最后的索引所在位置   "abcabc"?last_index_of("ab", 2),将会返回0

78、length 字符串长度

79、lower_case 小写形式

80、left_pad 距左边。如果字符串的长度达到指定数值或者比指定的长度还长,那就什么都不做了。

81、right_pad 距右边   但是它从末尾开始插入字符而不是从开头

82、contains 包含 <#if"piceous"?contains("ice")>It contains "ice"</#if>输出It contains "ice"

83、matches 匹配  决定字符串是否精确匹配上模式。返匹配的子串列表。返回值是一个多类型的值

84、number 数字格式    字符串转化为数字格式。

85、replace 替换  在源字符串中,用另一个字符穿来替换原字符串中出现它的部分。它不处理词的边界。

86、rtf 富文本   字符串作为富文本(RTF 文本),也就是说,下列字符串: 

87、url URL转义  <#assign x = 'a/b c'>  ${x?url} 输出:a/b c

88、split 分割  它被用来根据另外一个字符串的出现将原字符串分割成字符串序列。

<#list "someMOOtestMOOtext"?split("MOO") as x>

- ${x}

</#list>

输出:- some

- test

- text

89、starts_with开头

字符串以指定的子字符串开头,返回true。如"redhead"?starts_with("red")返回布尔值true

90、string(当被用作是字符串值时)  什也不做,仅仅返回和其内容一致的字符串。

91、trim 修整字符串  掉字符串首尾的空格。

      (${" green mouse "?trim})  输出: (green mouse)

92、upper_case 大写形式  字符串的大写形式。如"GrEeN MoUsE"将会是"GREEN MOUSE"。

93、word_list 词列表

包含字符串词的列表,并按它们在字符串中的顺序出现。词是连续的字符序列,包含任意字符,但是不包括空格<#assign words = " a bcd, . 1-2-3"?word_list>

<#list words as word>[${word}]</#list> 输出:[a][bcd,][.][1-2-3]

94、下面是标记字母的完整列表:

   i:大小写不敏感:不区分同一个字母大小写之间的差异。

   f:仅仅是第一。也就是说,替换/查找等,只是第一次出现的东西。

   r:查找的子串是正则表达式。FreeMarker使用变化的正则表达式,只有你使用Java2平台的1.4版本以后,标记才会起作用。

   m:正则表达式多行模式。在多行模式下,表达式^和$仅仅匹配前后,分别是一行结尾或者是字符串的结束。默认这些表达式仅仅匹配整个字符串的开头和结尾。

   s:启用正则表达式的dotall模式(和Perl的单行模式一样)。在dotall模式下,表达式.匹配任意字符串,包括行结束符。默认这个表达式不匹配行结束符。

   c:在正则表达式中许可空白和注释。

95、c 数字转字符

96、string(当用作是数值类型时)数字转字符串:将一个数字转换成字符串。

97、round,floor,ceiling 数字的舍入处理

    round:返回最近的整数。如果数字以.5结尾,那么它将进位(也就是说向正无穷方向进位)

    floor:返回数字的舍掉小数后的整数(也就是说向服务穷舍弃)

    ceiling:返回数字小数进位后的整数(也就是说向正无穷进位)

98、sort 排序:   以升序方式存储序列并返回。

99、sort_by来排序   返回由给定的哈希表子变量来升序排序的哈希表序列,

100、eval 求值   求一个作为FTL表达式的字符串的值。比如"1+2"?eval返回数字3。

101、has_content 是否有内容

102、interpret 将字符串解释为FTL模板

103、s_... 判断函数族   这些内建函数用来检查变量的类型,然后根据类型返回或

 

104、namespace 命名空间   这个函数返回和宏变量关联的命名空间

105、new 创建TemplateModel实现

106、支持的特殊变量有:

data_model:你可以使用来直接访问数据模型的哈希表。使用global指令定义在这里不可见的的变量。

error(从FM2.3.1版开):这个变量在recover指令体中可以访问,它存储了我们恢复错的错误信息。

globals:你可以使用来访问全局可访问的变量的哈希表:数据模型和由global指令创建的变量。language:返回当前本地设置的语言部分的值。比如.locale是en_US,那么.lang是en。

locale:返回当前本地设置的值。这是一个字符串,比如en_US。

locales:你可以访问本地化变量的哈希表(由local指令创建的变量,还有宏的参数)。

main:你可用来访问主命名空间的哈希表。注意像数据模型中的全局变量通过这个哈希表是不可见的。

namespace:你可用来访问当前命名空间的哈希表。后面的话同上。

node: 用访问者模式处理的当前节点。当你使用FreeMarker XML的Ant 任务时,它初始存储根节点。

output_encoding(FM2.3.1版始用):返回当前输出字符集的名称。

template_name:当前模板的名称(从FreeMarker 2.3.14版本开始可用)。

url_escaping_charset(从FreeMarker 2.3.1版本开始可用):如果存在,它存储了应该用于URL转义的字符集的名称。如果这个变量不存在就意味着没有人指定URL编码应该使用什么样的字符集。

vars:表达式.vars.foo返回和表达式foo相同的变量。出于某些原因你不得不使用方括号语法时这是有用的,因为它只对哈希表子变量有用,所以你需要一个人工的父哈希表。可写.vars["A strange name!"]。使用和变量varName给定的动态名称访问顶层变量可写.vars[varName]。

version:返回FreeMarker版本号的字符串形式,比如2.2.8。

107、if,else,elseif指令

switch,case,default,break指令

list,break 指令

include指令

import 指令

noparse指令

compress指令

escape,noescape指令

assign 指令

global 指令

local 指令

setting 指令

用户自定义指令(<@...>)

macro,nested,return 指令

function,return 指令

flush 指令

stop 指令

ftl 指令

t,lt,rt 指令

nt 指令

attempt,recover 指令

visit,recurse,fallback 指令

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值