freemarker
在java中存入一个map:
Map root = new HashMap();
root.put("user", "老周");
模板文件,在指令中直接用key,在页面显示中,则要用EL表达式获取key的值 :
<#if user= "老周"> ${user} </#if>
root.put("random",new Random().nextInt(100));
<#if random gte 80> ${random} 优秀 <#elseif random gte 60> ${random} 及格! <#else> ${random} 一般! </#if>
List指令还隐含了两个循环变量:
item_index:当前迭代项在所有迭代项中的位置,是数字值。
item_has_next:用于判断当前迭代项是否是所有迭代项中的最后一项。
List list = new ArrayList();
list.add(new Address("中国","北京"));
list.add(new Address("美国","纽约"));
root.put("lst", list);
<#list lst as dizhi > ${dizhi_index} <b> ${dizhi}</b> <#if !dizhi_has_next> 最后一个元素的国家是: ${dizhi.country} </#if> </#list>
输出:
0 <b> Address [city=北京, country=中国]</b>
1 <b> Address [city=纽约, country=美国]</b>
最后一个元素的国家是: 美国
<#if users??> //如果 users 不是空
<#list users as user > //遍历users
${user.id} - ${user.name}
</#list>
<#else> //否则 users 是空
${user!"变量为空则给一个默认值"} //输出默认的值
</#if>
如果 cust.customerImg 变量是"" 或者 NULL, 取${basePath}/images/avatar.png , 否则取变量值。
<img class="touxiangimg"
<#if (cust.customerImg)??> src="${basePath}/images/avatar.png"
<#else> src="${(cust.customerImg)}"
</#if>
/>
如果 cust.customerImg 变量是 NULL, 取${basePath}/images/avatar.png , 否则取变量值(如果cust.customerImg是"" , src也取值"" )。
<img class="touxiangimg" src="${(cust.customerImg)!'${basePath}/images/avatar.png'}" />