FreeMarker自学之路 (一)初识

来源:互联网 发布:网络小项目加盟 编辑:程序博客网 时间:2024/05/22 15:16

freemarker 是一款模板引擎,之前我并没有接触过。上个月老师拿来一个项目,用的freemarker做的,感觉挺不错的,就想学习一下。
其实吧,学一门新知识我是很迷茫的,不知从哪开始学习,希望各位同行们提宝贵的意见,不胜感激!!!

freemarker (即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。)

工作原理:
假设在一个应用系统中需要一个HTML页面如下:

<html>    <head>        <title>Welcome!</title>    </head>    <body>        <h1>Welcome Big Joe!</h1>        <p>Our latest product:        <a href="products/greenmouse.html">green mouse</a>!    </body></html>
页面中的用户名(即上面的“Big Joe”)是登录这个网页的访问者的名字, 并且最新产品的数据应该来自于数据库才能随时更新。所以,不能直接在HTML页面中输入“Big Joe”、“greenmouse”及链接, 不能使用静态HTML代码。可以使用要求输出的模板来解决,模板和静态页面是相同的,只是它会包含一些FreeMarker将它们变成动态内容的指令:
<html>    <head>        <title>Welcome!</title>    </head>    <body>        <h1>Welcome ${user}!</h1>        <p>Our latest product:        <a href="${latestProduct.url}">${latestProduct.name}</a>!    </body></html>
模板文件存放在Web服务器上,当有人来访问这个页面,FreeMarker就会介入执行,然后动态转换模板,用最新的数据内容替换模板中${...}的部分,之后将结果发送到访问者的Web浏览器中。访问者的Web浏览器就会接收到例如第一个HTML示例那样的内容(也就是没有FreeMarker指令的HTML代码),访问者也不会察觉到服务器端使用的FreeMarker。(存储在Web服务器端的模板文件是不会被修改的;替换也仅仅出现在Web服务器的响应中。)为模板准备的数据整体被称作为数据模型。数据模型是树形结构(就像硬盘上的文件夹和文件),在视觉效果上, 数据模型可以是(这只是一个形象化显示,数据模型不是文本格式,它来自于Java对象)

基本语法:
${…}:FreeMarker将会输出真实的值来替换大括号内的表达式,这样的表达式被称为interpolation(插值)。
注释:注释和HTML的注释也很相似,但是它们使用<#– and –>来标识。不像HTML注释那样,FTL注释不会出现在输出中(不出现在访问者的页面中),因为FreeMarker会跳过它们。
FTL标签(FreeMarker模板的语言标签):FTL标签和HTML标签有一些相似之处,但是它们是FreeMarker的指令,是不会在输出中打印的。这些标签的名字以#开头。(用户自定义的FTL标签则需要使用@来代替#)

参考来源:FreeMarker

0 0
原创粉丝点击