初识freemarker
来源:互联网 发布:淘宝lol半价点券关键词 编辑:程序博客网 时间:2024/06/02 18:44
这几天接触了自己一直想学习的代码生成工具,并初见成效。而代码生成工具运用的是Freemarker,翻查网络似乎好多公司对此也有要求,故接下来这一个星期专注于freemarker的学习。在java领域,表现层技术主要有三种:jsp、freemarker、velocity
对于刚接触java的最常用的当然是jsp其余两个在我出师之前都没有听过。
什么是FreeMarker?
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。这是官方给出的答案。
所谓模板,就是一份已经写好了基本内容,有着固定格式的文档,其中空出或者用占位符标识的内容,由使用者来填充,不同的使用者给出的数据是不同的。在模板中的占位符,在模板运行时,由模板引擎来解析模板,并采用动态数据替换占位符部分的内容。
FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件,FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java文件等。
虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据
图表分析它的作用:
跟之前用的模板引擎juicer一样,模板引擎的基本原理就是替换,如上图:用Fred替换${name}
分离表现层和业务逻辑
使用JSP开发过程中在页面中大量的存在业务逻辑的代码,使得页面内容凌乱,在后期大量的修改维护过程中就变得非常困难。FreeMarker根本不支持Java脚本代码,而是使用el表达式来输出展示数据。FreeMarker的设计初衷就是:模板+数据模型=输出,模板只负责数据在页面中的表现,不涉及任何的逻辑代码,而所有的逻辑都是由数据模型来处理的。用户最终看到的输出是模板和数据模型合并后创建的。
提高开发效率
在我们以往的开发中,使用的都是JSP页面来展示数据的,即所谓的表现层。我们都知道,JSP在第一次执行的时候需要转换成Servlet类,开发阶段进行功能调适时,需要频繁的修改JSP,每次修改都要编译和转换,那么试想一天中我们浪费在程序编译的时间有多少。相对于JSP来说,FreeMarker模板技术不存在编译和转换的问题,所以就不会存在上述问题。而且开发过程中,我们在不必在等待界面设计开发人员完成页面原形后,我们再来开发程序。
分工明确
以往用JSP展现数据时,程序员并不熟悉界面设计技术,反之界面开发人员,也并不熟悉程序语言。协调工作很困难,使用FreeMarker后,作为界面开发人员,只专心创建HTML文件、图像以及Web页面的其他可视化方面,不用理会数据;而程序开发人员则专注于系统实现,负责为页面准备要显示的数据。
本文信息来自:http://blog.csdn.net/kanglix1an/article/details/42271639
- 初识FreeMarker
- 初识freemarker
- freemarker初识
- 初识freemarker
- 初识FreeMarker
- [Freemarker] 初识FreeMarker
- 【Freemarker】之 初识(demo)
- FreeMarker初识,编码错误引发异常
- FreeMarker初识,编码错误引发异常
- FreeMarker自学之路 (一)初识
- freemarker
- freemarker
- FreeMarker
- FreeMarker
- freemarker
- freemarker
- freemarker
- Freemarker
- unity 一个物体相对另一个物体坐标系的偏转角度计算
- python实现文本文件转二进制文件(二进制序列化)
- 重新启航,拥抱u3d
- Visual Studio VS2010统计代码行数
- php数组根据某一个键值,把相同键值的合并生成一个新的二维数组
- 初识freemarker
- Linux CentOs7 下安装 redis
- c++primer第二遍阅读感悟(chap6)
- Apache Spark Jobs 性能调优(一)
- Android手机用Unity Profiler查看性能
- 路由特殊限定条件(:constraints)(例限API的访问ip)
- 新人离职原因
- VM虚拟机扩展磁盘容量并挂区该分区
- Android 最火的快速开发框架XUtils