内建函数语法格式:变量 + ? + 函数名称
-
字符串函数
-
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)都需要在模板的数据模型中被定义和赋值。
本文介绍了Groovy/Grails模板语言中的各种内置函数,包括字符串处理、数字运算、序列操作以及用于检查和转换数据类型的辅助函数,展示了如何在模板中使用这些函数处理变量和内容安全处理。
9744

被折叠的 条评论
为什么被折叠?



