简介电子厂

Apache
Free马克(Mark)er模板引擎:Java库来变化文书输出(HTML网页,电子邮件,配置文件,源代码,等等)基于模板与变化之多少。模板都勾于Free马克(Mark)er模板语言(FTL),这是一个简单易行的、专门的语言(不是一个成熟之编程语言(比如PHP)。你即便备的数目展现在一个真正的编程语言,就如数据库查询和举办工作的计问题,然后模板都准备好的多寡的显得。模板被您珍惜咋样显示数据,和标的模版你珍贵咋样数据。

 

电子厂 1

 

这种艺术一般给称作MVC(模型-视图-控制器)形式,并也动态网页特别被欢迎。它促进分离网页设计师(HTML作者)从开发者(Java程序员通常)。在模板设计者不谋面面临复杂的逻辑,可以变更页面的外观无需程序员修改要另行编译代码。

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

 

假如你于一个网站要一个HTML页面,类似于:

 

< html >
<头>
<标题>欢迎! < /名称>
< / >头
<身体>
<标题>欢迎John Doe ! < / h1 >
< p >我们的最新产品:
< a href = "产品/ greenmouse。html " >绿色鼠标< / > !
< /身体>
< / html >

可是用户的称呼(下面的“约翰(John)Doe”)取决于登录的用户是何人,和行的出品音信应来自一个数据库。因为此数目变化,你免可以无法使静态HTML。相反,您得运用一个模板所急需的出口。模板是一模一样的静态HTML,除了它含有令Free马克er使该动态:

 

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

模板存储于Web服务器上,通常就比如静态HTML页面。但当有人看那页面,Free马克er出席,将纯HTML的沙盘动态替换${...}s与新型的情,并以结果发送至访问者的Web浏览器。所以访问者的浏览器将收类似HTML(即首先只例。纯HTML没有Free马克(Mark)er指令),它不会师发现到Free马克(Mark)er在服务器上接纳。(当然,模板文件存储在Web服务器上从不变动,替换只现出于Web服务器的响应)。

留神,模板不分包编程逻辑来索来时的嫖客是什么人,或查询数据库拿到最新的成品。要显得的数目准备Free马克(Mark)er外,平日通过有些写在有“真实”编程语言(如Java)。模板作者不必知道这些价值是何许算的。事实上,这些价值的精打细算办法得以了移了模版可以保持完全相同,而且,完全改观了页面的外观不相会遇上其他事物,但模板。表示逻辑与事务逻辑的诀别可以特意有由此,当模板作者(设计师)和程序员都是例外之民用,但为促进管理应用程序的纷繁,倘诺她们是同一个口。保持模板集中在陈问题(视觉设计,布局与格式)是一个重要之得力使用诸如Free马克(Mark)er模板引擎。

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

(根)
|
+ -用户=“大乔”
|
+ - latestProduct
|
+ - url =“产品/ greenmouse.html”
|
+ - name =“绿色鼠标”
注意:

 

注意:

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

早些时候,你从之数据模型的精选值,userlatestProduct.name表明式。即使大家继续类相比数据模型就如一个文件系统,然后“(根)”,latestProduct相应的目录(文件夹),user,urlname文件的目录。

概括、模板与数据模型的急需FreeMarker生成输出(如首先坏体现的HTML):

模板+ 数据模型的= 输出

 

Free马克er几独优点:

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

  • 大多用和轻量级:零倚重,任何输出格式,能够自外地方加载模板(可插入),许多布置选

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

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

  • 通用的数据模型的:Java对象透露于模板变量通过可插入适配器的塑造,这决定模板咋样对待他们。

 

 

相关文章