对于顶层变量,直接使用${variableName}来输出变量值,变量名只能是字母,数字,下划线,
$,@和#的组合,且不能以数字开头号.为了输出上面的 name 的值,可以使用如下语法:
${name}
2. 输出集合元素
如果需要输出集合元素,则可以根据集合元素的索引来输出集合元素,集合元素的索引以
方括号指定.假设有索引:
["星期一","星期二","星期三","星期四","星期五","星期六","星期天"].该索引名为 week,
如果需要输出星期三,则可以使用如下语法:
${week[2]}KK //输出第三个集合元素
此外,FreeMarker 还支持返回集合的子集合,如果需要返回集合的子集合,则可以使用如
下语法:
week[3..5]KK //返回 week 集合的子集合,子集合中的元素是 week 集合中的第 4-6 个元素
3. 输出 Map 元素
这里的 Map 对象可以是直接 HashMap 的实例,甚至包括 JavaBean 实例,对于 JavaBean 实
例而言,我们一样可以把其当成属性为 key,属性值为 value 的 Map 实例.为了输出 Map 元
素的值,可以使用点语法或方括号语法.假如有下面的数据模型:
Map root = new HashMap();
Book book = new Book();
Author author = new Author();
author.setName("annlee");
author.setAddress("gz");
book.setName("struts2");
book.setAuthor(author);
root.put("info","struts");
root.put("book", book);
为了访问数据模型中名为 struts2 的书的作者的名字,可以使用如下语法:
book.author.nameKKK //全部使用点语法
book["author"].name
book.author["name"]KKK //混合使用点语法和方括号语法
book["author"]["name"]KK //全部使用方括号语法
使用点语法时,变量名字有顶层变量一样的限制,但方括号语法没有该限制,因为名字可以是
任意表达式的结果.
3.3 字符串操作
FreeMarker 的表达式对字符串操作非常灵活,可以将字符串常量和变量连接起来,也可以返回
字符串的子串等.
字符串连接有两种语法:
1. 使用${..}或#{..}在字符串常量部分插入表达式的值,从而完成字符串连接.
2. 直接使用连接运算符+来连接字符串
例如有如下数据模型:
Map root = new HashMap(); root.put("user","annlee");