浅谈FreeMarker

FreeMarker最初的设计,是被用来在MVC模式的Web开发框架中生成HTML页面的.

模板文件存放在Web服务器上,当有人来访问这个页面,FreeMarker就会介入执行,然后动态转换模板,用最新的数据内容替换模板中${...}的部分,之后将结果发送到访问者的Web浏览器中。访问者的Web浏览器就会接收到例如第一个HTML示例那样的内容(也就是没有FreeMarker指令的HTML代码),访问者也不会察觉到服务器端使用的FreeMarker。(存储在Web服务器端的模板文件是不会被修改的;替换也仅仅出现在Web服务器的响应中。)

准备的数据整体被称作为数据模型。数据模型为模板是树形结构(就像硬盘上的文件夹和文件),在视觉效果上, 数据模型可以是(这只是一个形象化显示,数据模型不是文本格式,它来自于Java对象):

如下是freemarker关系图:



l         FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件 

l         FreeMarker与容器无关,因为它并不知道HTTP或Servlet;FreeMarker同样可以应用于非Web应用程序环境 

l         FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库 

l         FreeMarker是免费的 

(1)模板 + 数据模型 = 输出。

模板可以理解为:包含FreeMarker的指令的文件就称为模板(Template),数据模型理解为Web端数据,springmvc中能通过request传输到模板中。输出则为视图层。

 (2)下面是一个可能的数据模型:

(root)

|
+- user = "Big Joe"
|
+- latestProduct
|
+- url = "products/greenmouse.html"
|
+- name = "green mouse"

(3)模板

 在FreeMarker模板中可以包括下面三种特定部分:

Ø         ${…}:称为interpolations,FreeMarker会在输出时用实际值进行替代。

Ø         FTL标记(FreeMarker模板语言标记):类似于HTML标记,为了与HTML标记区分,用#开始(有些以@开始,在后面叙述)。

Ø         注释:包含在<#--和-->(而不是<!--和-->)之间。

1.指令 有两种类型的指令:预定义指令和用户定义指令。

用户定义指令要使用@替换#,如<@mydirective>...</@mydirective>











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值