如果某段文本中包含大量的特殊符号,freemarker提供了另一种特殊格式:可以在指定字符串内容的引号前添加r标记,在r标记后的文 件将会直接输出 如 ${r"${foo}"}。
使用标签时前面的#符号也可能变成@,如果该指令是一个用户指令而不是系统内建指令时,应将#换为@符号。
插值,本人理解为${a}中 a就是插值
插值结果如果为字符串值:直接输出表达式结果
插值结果为数字值:根据默认格式将表达式结果转换为文本输出。可以使用内建的字符串函数格式化单个插值
如:<#assign lastUpdated="2009-01-07 15:05"?datetime("yyyy-MM-dd HH:mm")>
${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzzz")}结果为2009-01-07 15:05:00 中国标准时间
集合
集合以方括号包括,各集合元素之间以英文逗号(,)分割,实例:
<#list ["星期一","星期二"] as x>
${X}
</#list>
顶层变量
所谓顶层变量就是直接放在数据模型中的值,对于顶层变量,直接使用${variableName}来输出变量值
输出Map元素
如:Book b=new Book();
Author author=new Author();
author.setName('ss');
b.setAuthor(author);
Map root =newHashMap();
root.put("info",b);
输出:info.author.name
或为 info["author"]["name"],或 两者的混合
字符串操作
freemarker的表达式对字符串操作十分灵活,可以将字符串常量和变量连接起来,也可以返回字符串的子串等。
如:Map root=new HashMap();
root.put("user","yeeku");
${"hello,${user}!"}或者${"hello,"+user+"!"}
${}只能用于文本部分
原文:http://hi.baidu.com/%B5%DA%D2%BB%B8%F6%C9%CF%BB%F0%D0%C7/blog/item/c802e3187455a762dab4bddf.html