插值
插值的语法格式:
${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")}。