freemarker:简介

 

 

模板存储在Web服务器上,平常就像静态HTML页面。但每当有人访问这个页面,Free马克(Mark)er参加,将纯HTML的模版动态替换${...}s与时尚的情节,并将结果发送到访问者的Web浏览器。所以访问者的浏览器将接收类似HTML(即首先个例证。纯HTML没有Free马克er指令),它不会发觉到Free马克(Mark)er在服务器上接纳。(当然,模板文件存储在Web服务器上从未有过变动,替换只出现在Web服务器的响应)。

Free马克er多少个优点:

注意:

 

模板+ 数据模型的= 输出

 

(根)
|
+ -用户=“大乔”
|
+ - latestProduct
|
+ - url =“产品/ greenmouse.html”
|
+ - name =“绿色鼠标”
注意:
< html >
<头>
<标题>欢迎! < /名称>
< / >头
<身体>
<标题>欢迎John Doe ! < / h1 >
< p >我们的最新产品:
< a href = "产品/ greenmouse。html " >绿色鼠标< / > !
< /身体>
< / html >

 

 

以上只是一个可视化;数据模型的文本格式,它从Java对象。对于Java程序员,根或者是一个Java对象getUser()getLatestProduct()措施,或者一个JavaMap"user""latestProducts"钥匙。同样的,latestProduct或者是一个Java对象getUrl()getName()方法。

  • 强硬的沙盘语言:条件块、迭代、作业、字符串和算术运算和格式化,宏和函数,包括其他模板,逃避在默认情状下(可选),和重重更多

  • 多用途和轻量级:零依赖,任何输出格式,可以从任啥地方方加载模板(可插入),许多布置选项

  • 国际化/
    localization-aware:语言环境敏感的数量和日期/时间格式,局部模板的转变。

  • XML处理功用:删除XML
    DOM-s到数据模型的遍历,甚至以宣称的艺术处理它们

  • 通用的数据模型的:Java对象透露在模板变量通过可插入适配器的树,那决定模板怎么样看待他们。

图片 1

 

包括、模板和数据模型的急需Free马克er生成输出(如首先次映现的HTML):

< html >
<头>
<标题>欢迎! < /名称>
< / >头
<身体>
<标题>欢迎$ { user } ! < / h1 >
< p >我们的最新产品:
< a href = " $ { latestProduct.url } " > $ { latestProduct.name } < / > !
< /身体>
< / html >

Free马克er最初创造时生成HTML页面在MVC
web应用程序框架,它不是绑定到servlet或东西的HTML或上述。它的非web应用程序环境中选取。

但用户的名目(下边的“约翰(John)Doe”)取决于登录的用户是什么人,和流行的出品音讯应该来自一个数据库。因为这些数额变化,你不可能不可能选择静态HTML。相反,您能够运用一个模板所需的输出。模板是同样的静态HTML,除了它含有部分指令Free马克(Mark)er使其动态:

假使你在一个网站需要一个HTML页面,类似于:

小心,模板不包含编程逻辑来找出当下的客人是什么人,或查询数据库得到最新的成品。要体现的数目准备Free马克(Mark)er外,平常经过一些写在有些“真实”编程语言(如Java)。模板作者不必知道这么些值是怎么着总计的。事实上,这多少个值的乘除办法能够完全改变了模版可以维持完全相同,而且,完全改观了页面的外观不会赶上其他事物,但模板。表示逻辑与作业逻辑的分别可以专门有用,当模板作者(设计师)和程序员都是例外的村办,但也促进管理应用程序的错综复杂,假使他们是同一个人。保持模板集中在陈述问题(视觉设计,布局和格式)是一个根本的灵光应用像Free马克(Mark)er模板引擎。

未雨绸缪的漫天数量称为数据模型的模板。模板作者而言,数据模型是一个树状结构(如硬盘上的文书夹和文件),而在这种处境下,可以可视化为:

 

早些时候,你从这多少个数据模型的拔取值,userlatestProduct.name表明式。虽然大家继续类比数据模型就像一个文件系统,然后“(根)”,latestProduct相应的目录(文件夹),user,urlname文件的目录。

这种措施一般被号称MVC(模型-视图-控制器)格局,并为动态网页特别受欢迎。它有助于分离网页设计师(HTML作者)从开发者(Java程序员平日)。在模板设计者不会合临复杂的逻辑,能够变更页面的外观无需程序员修改或重新编译代码。

Apache
Free马克(Mark)er模板引擎:Java库来变化文书输出(HTML网页,电子邮件,配置文件,源代码,等等)基于模板和转变的数目。模板都写在Free马克er模板语言(FTL),这是一个简练的、专门的言语(不是一个成熟的编程语言(比如PHP)。你要预备的多寡呈现在一个真正的编程语言,就像数据库查询和做工作的测算问题,然后模板已经准备好的数量的来得。模板中你关心怎样突显数据,和外部的模板你尊敬怎么样数据。

 

相关文章