您的位置:首页 > 其它

【FreeMarker】【模板文件FTL】模板插值 ${...}

2014-10-24 14:37 330 查看

插值

插值的语法格式:

${expression}


expression可以是所有种类的表达式。

插值是用来插入具体值然后转换为文本(字符串)。

插值仅仅可以在两种位置使用

文本区(如<h1>Hello ${name}!</h1>)
字符串表达式(如<#include "/footer/${company}.html">)

一个常犯的错误是在不能使用插值的地方使用了它。典型的错误就是<#if ${isBig}>Wow!</#if>,这是语法上的错误。只要写为<#if isBig>Wow!</#if>就对了,而且<#if "${isBig}">Wow!</#if>也是错误的,因为这样参数就是字符串类型了,但是if指令的参数要求是布尔值,所以运行时就会发生错误。

插值表达式的结果必须是字符串,数字或日期类型的,因为只有数字和日期类型可以自动转换为字符串类型,其他类型的值(如布尔,序列)只能手动转换为字符串类型,否则就会发生错误导致模板执行中止。

字符串插入

数字插入

如果表达式是数字类型,那么根据数字的默认格式,数值将会转换成字符串。

时间/日期插入

如果表达式的值是时间日期类型,那么日期中的数字将会按照默认格式来转换成文本。

布尔值插入

若要使用插值方式来打印布尔值会引起错误,中止模板的执行。

例如:${a == 2}就会引起错误,它不会打印”true”或其他内容。

然而,我们可以使用内建函数string来将布尔值转换为字符串形式。比如打印变量”married”(假设它是布尔值),那么可以这么来写: ${married?string("yes", "no")}。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: