公司最近用到freemarker来解析xml,最终要求page输出,研究了一下:
1. 对于freemarker来说,模板+数据模型=输出
简单地说,freemarker并不关系数据的生成,freemarker只关心数据如何抓取,并以何种framework展现。
${... } ,freemarker将输出真实得知来替换括号中的表达式。这里的表达式也可被称为插值。
FTL标签, 也就是freemarker语言标签,他们并不会直接输出,标签已#开始 ,eg. <#if ...></#if>, 还有一点是用户或自定义 freemarker标签 已@开始。
Comments: <#-- -->
2. 以上是一些基本简介,下面介绍一下freemarker指令
a. if指令
${user}
<#if user == "Cary" >this is a developer.</#if>
b. list指令: list顾名思义遍历集合元素
<table>
<#list persons as developer>
<tr>
<td>${developer.name}</td>
<t/r>
</#list>
</table>
那么它的输出形式就类似:
<table>
<tr>
<td>Tom</td>
<td>Cary</td>
<td>Jack</td>
</tr>
</table>
c. include指令: 可以再当前 模板中插入其他文件内容
比如我们要把公司版权声明插入到每一个page,就可以这样做
<#include "/footer.html">
freemarker最通用的指令就是这些,但大多数时候是联合使用这些指令。