FreeMarker入门——模板+数据模型=输出

一、输出(以一个HTML为例)output

<html> 
<head> 
  <title> Welcome!</ title> 
</head> 
<body> 
  <h1> Welcome John Doe!</ h1> 
  <p>我们的最新产品:<a href =“ products / greenmouse.html “> 绿色老鼠 </a>!</p>
</ body> 
</ html>

二、模板Template

数据我们需要从服务器获得,模板就是提供一个样例,告诉我们以怎么得方式取出数据屏显示在模板上,最后数据一个例如html的输出结果

<html> 
<head> 
  <title> Welcome!</title> 
</head> 
<body> 
  <h1> Welcome${user}!</h1> 
  <p>我们的最新产品:
  <a href =“ ${latestProduct.url} “> $ {latestProduct.name} </a>!</p>
</body> 
</html>

从中我们可以卡看出,当我们访问模板时,FreeMarker会通过${...}方法,对模板中相应位置的数据尽心替换,然后显示输出。

注意:

该模板要显示的数据是在FreeMarker外部准备的,通常是用一些“真正的”编程语言(如JAVA)编写的部分,模板的作用是保持展示问题,不涉及变成和逻辑问题。所以也就不能用改模板进行数据的更新,需要在FreeMarker外部准备。

三、数据模型Data Model

就模板而言,数据模型是一个树形结构。类似于用盘上的文件姐和文件。我们可以将其视觉化为:

(根)

    | + - user =“大乔”

    | + - latestProduct

            | + - url =“products / greenmouse.html”

             | + - 名称 =“绿色鼠标”

注意:

以上只是一个可视化; 数据模型不是文本格式,而是来自Java对象。对于Java程序员来说,根可能是带有getUser() 和getLatestProduct()方法的Java对象,也可能是Map带有"user""latestProducts"键的Java 。同样, latestProduct也许是Java对象 getUrl()getName() 方法

总之,FreeMarker需要一个模板和一个数据的模型来生成一个HTML

猜你喜欢

转载自my.oschina.net/zhaoqwei/blog/1632417