内建函数语法格式:变量 + ? + 函数名称
-
字符串函数
-
html
:对字符串进行HTML编码<p>${message?html}</p> <!-- 如果message包含HTML特殊字符,它们将被编码以防止XSS -->
-
cap_first
:使字符串的第一个字母大写${name?cap_first} <!-- 如果name是"john",输出将是"John" -->
-
length
:返回字符串的长度${text?length} <!-- 如果text是"Hello",输出将是5 -->
-
-
序列(Sequence)函数
-
size
:返回序列中元素的数量<#list users as user> <p>${user.name}</p> </#list> <p>Total users: ${users?size}</p> <!-- 输出用户总数 -->
-
first
和last
:返回序列的第一个和最后一个元素${numbers?first} <!-- 假设numbers是[1, 2, 3, 4],输出将是1 --> ${numbers?last} <!-- 输出将是4 -->
-
-
数字函数
-
round
:对数字进行四舍五入${price?round(2)} <!-- 如果price是123.456,输出将是123.46 -->
-
ceiling
:对数字进行向上取整${number?ceiling} <!-- 如果number是7.2,输出将是8 -->
-
-
Hash(Map)函数
-
keys
和values
:返回Hash中的所有键和值<#list person?keys as key> <p>${key}: ${person[key]?html}</p> </#list>
-
?has_content
:检查Hash是否为空(即是否包含至少一个键值对)<#if person?? && person?has_content> <!-- person不是null且包含内容 --> </#if>
-
-
其他常用函数
-
?default
:为变量提供默认值${maybeNull?default("default value")} <!-- 如果maybeNull是null或不存在,输出"default value" -->
-
?exists
:检查变量是否存在<#if variable??> <!-- variable存在 --> </#if>
-
?is_string
、?is_number
等:检查变量是否为特定类型<#if someVar?is_string> <!-- someVar是字符串 --> </#if>
-
?starts_with
和?ends_with
:检查字符串是否以特定子串开始或结束<#if text?starts_with("pre")> <!-- text以"pre"开始 --> </#if>
-
?contains
:检查字符串是否包含特定子串<#if text?contains("sub")> <!-- text包含"sub" --> </#if>
-
请注意,上述示例中的变量(如message
、name
、text
、users
、price
、number
、person
、maybeNull
、variable
、someVar
、text
)都需要在模板的数据模型中被定义和赋值。