模板开发语句
1.最简单的模板是普通 HTML 文件(或者是其他任何文本文件—FreeMarker 本身不属于HTML)。当客户端访问页面时,FreeMarker 要发送 HTML 代码至客户端浏览器端显示。如果想要页面动起来,就要在 HTML 中放置能被 FreeMarker 所解析的特殊部分。
2.${…}:FreeMarker 将会输出真实的值来替换花括号内的表达式,这样的表达式被称为interpolations 插值,可以参考第上面示例的内容。
3.Comments 注释:FreeMarker 的注释和 HTML 的注释相似,但是它用<#–和–>来分隔的。任何介于这两个分隔符(包含分隔符本身)之间内容会被 FreeMarker 忽略,就不会输出出来了。
4.directives指令:就是所指的 FTL 标签。这些指令在 HTML 的标签(如<table>和</table>
)和 HTML 元素(如 table 元素)中的关系是相同的。(如果现在你还不能区分它们,那么把“FTL 标签”和“指令”看做是同义词即可。)
if指令
root.put("random", new Random().nextInt(100));
if语句测试:(if为真显示里面的内容“是男的”,为假则不显示)
${user}是<#if user=="tom">是男的</#if>
if else 语句测试:
<#if num1 gt 18> <#--不是使用>,大部分时候,freemarker会把>解释成标签结束! -->
及格!
<#else>
不及格!
</#if>
if else if else语句测试:
<#if random gte 90>
优秀!
<#elseif random gte 80>
良好!
<#else>
一般!
</#if>
list指令
List list = new ArrayList();
list.add(new Address("中国","北京"));
list.add(new Address("中国","上海"));
list.add(new Address("美国","纽约"));
root.put("lst", list);
测试list指令:
<#list lst as dizhi >
<b>${dizhi.country}</b> <br/>
</#list>
控制台打印:
测试list语句:
<b>中国</b> <br/>
<b>中国</b> <br/>
<b>美国</b> <br/>
include指令
文件内容如下:
模板文件中代码如下:
测试include指令:
<#include "included.txt" />
自定义指令(macro指令)
<#macro m1> <#--定义指令m1 -->
<b>aaabbbccc</b>
<b>dddeeefff</b>
</#macro>
<@m1 /><@m1 /> <#--调用上面的宏指令 -->
定义带参的宏指令:
<#macro m2 a b c >
${a}--${b}--${c}
</#macro>
<@m2 a="tom" b="jack" c="jons" />
nested指令:
<#macro border>
<table border=4 cellspacing=0 cellpadding=4><tr><td>
<#nested>
</td></tr></table>
</#macro>
<@border >表格中的内容!</@border>
java代码中定义的Map为:
Map map = new HashMap();
map.put("user", "tom");
map.put("url", "www.baidu.com");
map.put("name", "百度");
map.put("random", new Random().nextInt(100));
map.put("num1", 100);
以上控制台打印的情况为:
1.tom是男的
2.tom成绩为:
及格!
3.44 一般!
4.
<b>aaabbbccc</b>
<b>dddeeefff</b>
5.
tom--jack--jons
6.
<table border=4 cellspacing=0 cellpadding=4><tr><td>
表格中的内容! </td></tr></table>