${user!“default value”} – 变量名后面跟着一个 !(感叹号)和默认值
也可以在变量名后面通过放置??来询问一个变量是否存在
<#if user??>
Welcome ${user!“你好”}!
</#if>
animals.python.price!0
当且仅当animals.python永远存在,而仅仅最后一个子变量price可能不存在时是正确的(这种情况下假设价格是0)。
如果 animals或python不存在
那么模板处理过程将会以“未定义的变量”错误而停止。
为了防止这种情况的发生,
可以如下这样来编写代码 (animals.python.price)!0。这种情况就是说animals或python不存在时,表达式的结果是 0。
对于??也是同样用来的处理这种逻辑的;将animals.python.price??对比(animals.python.price)??来看
FreeMarker不能引用不存在的变量,除非明确地告诉它当变量不存在时如何处理
基本语法: ${} 和 el表达式一样
注释:<#-- context -->
FTL标签:以#开头 (自定义的需要用@来代替#)
例如:user?html给出user的HTML转义版本,比如&会由 &
来代替
内建函数应用可以链式操作,比如user?upper_case?html会先转换用户名到大写形式,之后再进行HTML转义,和链式使用.(点)一样
范例:
<#if condition>
...
<#elseif condition2>
...
<#elseif condition3>
...
<#else>
...
</#if>
'''
假设 users 包含['Joe', 'Kate', 'Fred'] 序列:
<#list users as user>
${user}
</#list>
输出:
<p>Joe
<p>Kate
<p>Fred
将版权信息单独存放在页面文件 copyright_footer.html 中:
<hr>
<i>
Copyright (c) 2000 <a href="http://www.baidu.com">Baidu Inc</a>,
<br>
All Rights Reserved.
</i>
当需要用到这个文件时,可以使用 include 指令来插入:
<html>
<head>
<title>Test page</title>
</head>
<body>
<span>Test page</span>
<p>Blah blah...
<#include "/copyright_footer.html">
</body>
</html>