一、substring
NOTE: 这个内置以来2.3.7 FreeMarker的存在
语法exp?substring(from,toExclusive),也可以是exp?substring(from)
简介:一个字符串,form是第一个字符(A substring of the string.from is the index of the first character.),它必须是一个数字,而且至少是0和小于0或者具有相 同的 toExclusive.进行截取操作的最后字符的索引,该值必须为数字,如果该 值省略,默认为从from到字符串的结束。
例:
表达式
|
输出
|
${‘abc’?substring(0)}
|
Abc
|
${‘abc’?substring(1)}
|
Bc
|
${‘abc’?substringf(2)}
|
C
|
${‘abc’?substring(3)}
|
|
${‘abc’?substring(0,0)}
|
|
${‘abc’?substring(0,1)}
|
A
|
${‘abc’?substring(0,1)}
|
Ab
|
二、cap_first:将字符串的第一个字符或者字母(仅前几个字符是空格的情况)大写(如果第一个字符是字母);如果字符串的第一个字符不是字母(空格除外),将按照原来字符串的格式返回;若第一个字符是字母并且是大写的情况,结果同上。
表达式
|
结果
|
${‘ green mouse’?cap_first}
|
Green mouse
|
${‘GreEN mouse’?cap_first}
|
GreEN mouse
|
${‘- green mouse’? cap_first}
|
- green mouse
|
In the case of "-
green mouse", the
first word is the -.
三、uncap_first:功能和cap_first相反
四、capitalize:将一个字符串的首字母大写,其他字母全小写
表达式
|
结果
|
${ green mouse}?capitalize
|
Green Mouse
|
${‘GreEN mouse’?capitalize}
|
Green Mouse
|
五、chop_linebreak:如果一个字符串的末尾有换行,将换行打断;否则不变
六、date,time,datetime:将字符串转换成日期,建议提供一个参数指定格式
表达式
|
结果
|
<#assign test1 = ‘10/25/1995’?date(‘MM/ddyyyy’)>${test1}
|
Oct 25,1955
|
|
|
七、ends_with:判断字符串是否以指定的字符结尾,如果是返回true;否则返回false
表达式
|
结果
|
${‘read head’?ends_width(‘head’)}
|
true
|
八、html:作为HTML标记的字符串。也就是说,所有的字符串
l <取代<
l >替换>
l &替换为&
l "改为"
如果在某个字符串中存在一些HTML特色字符的话,可以使用这种方式来避免与HTML的冲突
九、groups
十、index_of:返回指定字符在字符串中第一次出现的索引。也可以指定从那个索引开始进行查找如${‘abcabc’?index_of(‘bc’,2)}将指定从索引为2的地方开始进行查找匹配字符.如果没有找到批评的字符将返回-1
表达式
|
结果
|
${‘abcabc’?index_of(‘bc’)}
|
1
|
${‘abcabc’?index_of(‘bc’,2)}
|
4
|
十一、 j_string:java中的转义字符
十二、 js_string: 脱JavaScript语言文字的字符串字符串的转义规则,因此它是安全的插入文本值转换为字符串。
两个引号(“)和单引号- quoate(')被转义。2.3.1起价FreeMarker的,它也逃脱 > 为
“\> ( 避免 </脚本>)。此外,在所有字符
的UCS 码点0x20,即JavaScript语言中没有专门的转义序列,将被替换为十六进制转义(\ x二十)。(当然,根据JavaScript语言的字符串的语法,反斜杠(\)会被转义也换行会被转义为 \ ?,...等等)
如:
<#assign
user = "Big Joe's \"right hand\"">
<script>
alert("Welcome
${user?js_string}!");
</script>
将返回
<script>
alert("Welcome Big Joe\'s \"right hand\"!");
</script>
十三、 last_index_of:最后一个匹配的索引
十四、 length:字符串的长度
十五、 lower_case:全部转换为小写
十六、 left_pad
十七、 right_pad
十八、 contains这个内置对象在2.3.1版本中有,但2.3版本中没有:用于判段在一个字符串是否存在指定的字符
表达式
|
结果
|
<#if ‘maple’?contains(‘ap’)>maple</#if>
|
maple
|
十九、 matches:只能在java2平台1.4或更高版本上使用,否则将以错误来处理
使用正则进行匹配,返回的是一个序列(SimpleSequence),序列的大小可能是0
表达式
|
结果
|
<#if
"fxo"?matches("f.?o")>Matches.<#else>Does not
match.</#if>
|
Matches.
|
<#assign res = "foo bar
fyo"?matches("f.?o")>
<#if res>Matches.<#else>Does
not match.</#if>
Matching sub-strings:
<#list res as m>
- ${m}
</#list>
|
Does not match.
Matching sub-strings:
- foo
- fyo
|
返回的序列不能直接通过${}输入,而应该通过<#list>进行迭代
二十、 number:将String转换为数值,这个数字必须在FTL指定的格式
二十一、
replace:它用来取代原来的字符串与另一个字符串中所有出现的字符串。它不涉及字边界
表达式
|
结果
|
${‘this is a car acarus’?replae(‘car’,’maple’)}
|
this is a maple amapleus
|
${‘aaaa’?replace(‘aaa’,’X’)}
|
Xa
|
${‘maple’?replce(‘’,’|’)}
|
|m|a|p|l|e|
|
二十二、
rtf:作为富文本(RTF)字符串
l \替换\\
l {替换\{
l }替换\}
二十三、
split:”分割
分割方式可以指定为标点符号或者字符
表达式
|
结果
|
<#list ‘yangyang,do you know my heart’?split(‘,’) as m>
-
${m}
</#list>
|
-yangyang
-do you know my heart
|
二十四、
starts_with:以什么开始,与ends_with向对应
二十五、
string:什么也不做,只是返回的字符串原样。唯一的例外is,如果该值是一个多类型的值(例如,它是两个字符串,在同一个时间顺序),然后将得到的值只是一个简单的字符串,而不是一个多类型的值。
二十六、
trim:去掉前后空格
二十七、
upper_case:将所有的字母转换为大写,与lower_case向对应
二十八、
word_list:返回的是一个序列,其中包含的是命令字符串中的所有字,因为他们出现在字符串中,语言是通过以“空格”为标准进行分割
表达式
|
结果
|
<#assign words = " a bcd, .
1-2-3"?word_list>
<#list words as
word>[${word}]</#list>
|
[a] [bcd,][.] [1-2-3]
|
二十九、
xhtml:作为XHTML的文本字符串,类似于html
l <取代<
l >取代>
l &取代&
l “取代”
l ‘取代’
三十、 xml:作为XML文本字符串
l <取代<
l >替换>
l &替换为&
l “改为”
l ‘改为’
相关推荐
字符串操作在FreeMarker中是通过内置的指令和函数实现的。 1. **字符串拼接**: 在FreeMarker模板中,可以使用`+`运算符来连接字符串。例如: ```html , "> !"> ${str1 + str2} ``` 这将输出:"Hello, World...
freemarker实现自动补齐字符串。通过ftl模版文件(ftl文件为freemarker模版文件)的自定义标签实现自动补齐字符串。代码稍作修改便可左补齐右补齐左右补齐,可自定义设置补齐的字符串。测试通过java文件调用ftl文件...
根据提供的文件信息,我们可以深入探讨Freemarker中的内置函数,主要关注数字、字符串以及日期的格式化处理。Freemarker是一种强大的模板引擎,被广泛应用于Web开发和其他领域中,用于生成动态HTML页面或其他类型的...
当表达式的计算结果为字符串、数字、日期或布尔值时,它们会被相应地处理和输出。 - **通用插值**(`${expr}`): - 字符串值:直接输出表达式的结果。 - 数字值:默认情况下,按照预设的格式(可通过`#setting`...
Freemarker 提供了一些操作字符串的内置函数,用于操作字符串对象。 1. `substring(start,end)`:从一个字符串中截取子串。 2. `cap_first`:将字符串中的第一个单词的首字母变为大写。 3. `uncap_first`:将字符串...
在FreeMarker中,内置函数提供了一套便捷的工具,帮助我们在模板中执行各种操作,例如字符串处理、日期时间格式化等。 1. **字符串操作函数** - `join`: 将数组或列表中的元素连接成一个字符串,通常用于生成CSV...
Freemarker内置函数详解 Freemarker是一种基于模板的网页生成技术,内置了大量实用的函数,以下是Freemarker内置函数的详细说明: ...这些内置函数可以帮助开发者快速实现各种字符串操作和数据处理。
Freemarker是一个强大的模板引擎,常用于生成动态HTML页面,其内置函数提供了丰富的处理能力,包括对字符串、日期、序列(Sequence)和哈希(Hash)的操作。在本篇文章中,我们将深入探讨这些功能,帮助你更好地理解...
一篇很全面的freemarker教程reeMarker模板文件主要由如下4个部分组成: 1,文本:直接输出的部分 2,注释:格式部分,不会输出 3,插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出 4,FTL指令:...
本篇将深入讲解Freemarker的内置函数,结合实际例子,帮助你更好地理解和运用这些功能。 一、变量与表达式 在Freemarker中,变量的引用使用`${}`,例如 `${name}` 将输出变量name的值。表达式可以是简单的变量引用...
Java 代码审计——Freemarker 模板命令注入分析 Java 代码审计是软件开发过程中的一个重要步骤,它可以帮助开发者发现和修复代码中的漏洞和缺陷。在本文中,我们将对 OFCMS 1.1.2 后台存在的 Freemarker 模板命令...
如果变量不存在,FreeMarker会默认输出空字符串。 2. **文字输出**: 除了变量表达式,FreeMarker还支持直接输出文本,比如 `${'Hello, World!'}`。这种表达式不会查找数据模型,而是直接输出引号内的内容。 3. *...
- **字符串**: 由单引号或双引号括起来的文本。 - **数字**: 直接使用数值。 - **日期**: 通常从数据模型中获取。 - **布尔值**: `true` 或 `false`,常用于 `<#if...>` 结构中。 **2. Hashes(哈希表)** - ...
FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术...”后的字符)显示。 对象user,name为user的属性的情况,user,name都有可能为空,那么可以写成${(user.name
除了基本的字符串输出,Freemarker还支持更复杂的字符串操作,如字符串拼接。 - **字符串拼接示例**: - 拼接字符串:`${"hello," + username + "!"}`。 - 使用变量拼接字符串:`${"hello,${username}"}`。 这些...
Freemarker是一个强大的...这些内置函数极大地增强了Freemarker模板语言的灵活性,使得开发者可以方便地处理各种数据结构和字符串,生成复杂的动态内容。在实际应用中,熟练掌握这些函数能提高开发效率,优化代码质量。
FreeMarker提供了文本处理功能,如字符串拼接、格式化输出: - `${'Hello, ' + user.name}`:拼接字符串。 - `${value?string('yyyy-MM-dd')}`:格式化日期。 ### 7. 自定义指令和宏 FreeMarker允许你创建自定义...