FreeMarker软件介绍
FreeMarker.jar,简单的说就是一种基于模板和要改变的数据,并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具,它的出现主要是为了解决Struts2当中缺少freemarker.jar的问题。它不是为最终用户设计的,而是一个Java类库,一个程序员可以嵌入到他们开发的产品中的组件,也就是说这个就跟一个工具组件一样,与其它软件配合使用。它是用Java语言编写的,主要用于MVC中的视图层,生成HTML显示数据给客户端,可以完全替代JSP。软件是独立于Web容器,也就是说,它在Web运行时不知道servlet或HTTP,它不仅可以用作表示层的实现技术,还可以生成Java编程语言等。
FreeMarker软件特色
模板并没有包含程序逻辑 来查找当前的访问者是谁,或者去查询数据库获取最新的产品。显示的数据是在FreeMarker之外准备的,通常是一些“真正的”编程语言(比如Java )所编写的代码。模板作者无需知道这些值是如何计算出的。事实上,这些值的计算方式可以完全被修改,而模板可以保持不变,而且页面的样式也可以完全被修改而无需改动模板。当模板作者(设计师)和程序员不是同一人时,显示逻辑和业务逻辑相分离的做法是非常有用的,即便模板作者和程序员是一个人,这么来做也会帮助管理应用程序的复杂性。保证模板专注于显示问题(视觉设计 ,布局和格式化 )是高效使用模板引擎的关键
FreeMarker工作原理
假设在一个应用系统中需要一个HTML页面如下:
页面中的用户名(即上面的“Big Joe”)是登录这个网页的访问者的名字, 并且最新产品的数据应该来自于数据库才能随时更新。所以,不能直接在HTML页面中输入“Big Joe”、“greenmouse”及链接, 不能使用静态HTML代码。可以使用要求输出的模板来解决,模板和静态页面是相同的,只是它会包含一些FreeMarker将它们变成动态内容的指令:
模板文件存放在Web服务器上,当有人来访问这个页面,FreeMarker就会介入执行,然后动态转换模板,用最新的数据内容替换模板中${...}的部分,之后将结果发送到访问者的Web浏览器中。访问者的Web浏览器就会接收到例如第一个HTML示例那样的内容(也就是没有FreeMarker指令的HTML代码),访问者也不会察觉到服务器端使用的FreeMarker。(存储在Web服务器端的模板文件是不会被修改的;替换也仅仅出现在Web服务器的响应中。)
为模板准备的数据整体被称作为数据模型。数据模型是树形结构(就像硬盘上的文件夹和文件),在视觉效果上, 数据模型可以是(这只是一个形象化显示,数据模型不是文本格式,它来自于Java对象):
早期版本中,可以从数据模型中选取这些值,使用user和latestProduct.name表达式即可。类比于硬盘的树形结构,数据模型就像一个文件系统,“(root)”和latestProduct就对应着目录(文件夹),而user、url和name就是这些目录中的文件。
总体上,模板和数据模型是FreeMarker来生成输出所必须的组成部分:模板 + 数据模型 = 输出。
FreeMarker更新日志
1.对部分功能进行了优化
2.解了好多不能忍的bug
华军小编推荐:
FreeMarker一直以来是大多数小伙伴常用编程开发软件,在网民心目中的可是有这霸主地位可见一般,华军软件园小编同学推荐广大用户下载FreeMarker使用,快来下载吧,另外还有Maven、Java2 Runtime Environment、Eclipse IDE for Java EE Developers For Linux(64-bit)、GCC For Linux、Free Pascal提供下载。
有用
有用
有用