一、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提供了丰富的内置函数,可以帮助开发者在模板中进行各种操作,如字符串处理、数值运算等。 ##### 字符串操作 ```plaintext 假设 user 的值为 "john.doe" --> ${user?upper_case} // JOHN.DOE ${user?...
Freemarker 提供了一系列字符串处理方法。 ```html ${s.upper_case} ``` ##### 在模板里对 sequences 和 hashes 初始化 使用 `assign` 语句。 ```html [1, 2, 3]> , "key2": "value2"}> ``` ##### 注释标志 使用 `...
FreeMarker提供了丰富的内置函数和指令,覆盖了字符串处理、数字运算、日期格式化、布尔逻辑等方面。熟练掌握这些功能可以简化模板的编写过程。 ### 8. 安全策略配置 为了防止模板注入等安全风险,FreeMarker允许...
- FreeMarker 支持多种类型的值,包括字符串、数字、日期等。 - 每种类型都有其独特的属性和方法,可以通过模板语言进行操作。 - **类型概述:** - 字符串:用于存储文本数据。 - 数字:包括整数和浮点数。 - ...
FTL指令是FreeMarker提供的一系列命令,用于控制模板的行为。它们通常用来实现逻辑控制、循环遍历等功能。 1. **开始标签**: `<#directivename parameter>`,例如`<#if ...>`表示开始一个条件判断。 2. **结束...
- **标量**:如字符串、数字等基本数据类型。 - **容器**:如列表、哈希表等集合类型。 - **方法**:可以直接调用的方法。 - **指令**:用于控制模板行为的特殊命令。 - **节点变量**:处理XML文档时,代表XML...
6. **commons-lang-2.5.jar**:Apache Commons Lang是一个包含许多实用工具方法的库,帮助开发者处理Java内置类的一些常见任务,如字符串处理、日期时间操作等,为Struts2提供了便利的工具类支持。 7. **ognl-3.0.1...
”消息的字符串,然后通过模板引擎(如Thymeleaf或FreeMarker)或者RESTful API响应给客户端。 6. **启动与运行** Spring Boot应用通常是单个可执行的JAR文件,可以通过`java -jar`命令运行。在STS中,可以使用...
- **StringBuilder**:可变字符串,线程不安全,效率高于StringBuffer。 - **StringBuffer**:线程安全的可变字符串,适用于多线程环境。 ##### Hashtable与HashMap的区别 - **线程安全性**:Hashtable是线程安全...