一、 FreeMarker简介
FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。
所谓模板,就是一份已经写好了基本内容,有着固定格式的文档,其中空出或者用占位符标识的内容,由使用者来填充,不同的使用者给出的数据是不同的。在模板中的占位符,在模板运行时,由模板引擎来解析模板,并采用动态数据替换占位符部分的内容。
FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 文等。
二、 FreeMarker的优点和缺点
(一) FreeMarker的优点
1.使用FreeMarker的优点之一,可以彻底的分离表现层和业务逻辑。
使用JSP 开发过程中在页面中大量的存在业务逻辑的代码,使得页面内容凌乱,在后期大量的修改维护过程中就变得非常困难。
FreeMarker根本不支持Java脚本代码。
FreeMarker的原理就是:模板+数据模型=输出 ,模板只负责数据在页面中的表现,不涉及任何的逻辑代码,而所有的逻辑都是由数据模型来处理的。用户最终看到的输出是模板和数据模型合并后创建的。
2.使用FreeMarker的优点之二,可以提高开发效率。
在我们以往的开发中,使用的都是JSP 页面来展示数据的,即所谓的表现层。我们都知道,JSP在第一次执行的时候需要转换成Servlet类,开发阶段进行功能调适时,需要频繁的修改JSP,每次修改都要编译和转换,那么试想一天中我们浪费在程序编译的时间有多少。相对于JSP来说,FreeMarker模板技术不存在编译和转换的问题,所以就不会存在上述问题。而且开发过程中,我们在不必在等待界面设计开发人员完成页面原形后,我们再来开发程序。
3.使用FreeMarker的优点之三,使得开发过程中的人员分工更加明确。
以往用JSP展现数据时,作为程序员的我们,并不熟悉界面设计技术,反之界面开发人员,也并不熟悉程序语言。对两者而言,交替性的工作本身就有难度。有时候稍有不慎,可能会将某个页面元素删除或去掉了某个程序符号,使得页面走样或程序错误,这样就需要双方相互沟通协作,解决出现的问题。有时候因为项目中的时间,任务量等因素的存在,可能这个工作就由一个人来完成,这样就可能加大某一方开发人员的工作量。
使用FreeMarker后,作为界面开发人员,只专心创建HTML文件、图像以及Web页面的其他可视化方面,不用理会数据;而程序开发人员则专注于系统实现,负责为页面准备要显示的数据。
(二)FreeMarker的缺点
1.使用FreeMarker的缺点之一,应用FreeMarker模板技术,在修改模板后,可能会看到已经过期的数据。如:生成静态的HTML页面后,如果一旦模板改变,而没有及时更新模板生成的HTML页面的话,用户看到的就是过期的数据。
2.使用FreeMarker的缺点之二,FreeMarker模板技术在应用过程中,FreeMarker中的变量必须要赋值,如果不赋值,那么就会抛出异常。想避免错误就要应用if/elseif/else 指令进行判段,如果对每一个变量都判断的话,那么则反而增加了编程的麻烦。
3.使用FreeMarker的缺点之三,FreeMarker的map限定key必须是string,其他数据类型无法操作
4.使用FreeMarker的缺点之四,FreeMarker不支持集群应用。为了编成的方便性,把序列化的东西都放到了Session中,如Session,request等,在开发的过程中确实方便,但如果将应用放到集群中,就会出现错误。
分享到:
相关推荐
**FreeMarker的缺点** 1. **学习曲线**:虽然FreeMarker语法相对简单,但对新手来说仍需要一定时间去学习和适应。 2. **调试困难**:相比于IDE中的Java代码调试,模板的调试通常较为不便,需要借助日志或特殊工具...
### jsp、freemarker、velocity简介和对比 在Java Web开发领域,模板引擎是连接后端业务逻辑与前端展示层的重要桥梁。本文将重点介绍三种常用的Java Web模板引擎:JSP(Java Server Pages)、Freemarker以及...
`FreeMarker的优点和缺点.mht`详细列出了这些优点。 - **缺点**:虽然FreeMarker在很多方面表现出色,但可能对新手不够友好,学习曲线较陡峭,错误处理机制相对简单,有时调试较困难。 4. **FreeMarker的扩展性**...
1. **分离表现层与业务逻辑**:FreeMarker 不支持 Java 脚本代码,因此可以彻底地分离表现层和业务逻辑。 2. **提高开发效率**:在开发过程中,界面设计师和开发人员可以并行工作,无需等待页面原型完成后再开始编码...
- **优点**:FreeMarker是纯文本模板语言,不包含任何程序逻辑,使得模板易于编写和维护;与Java代码分离,有利于前后端职责划分;性能优秀,渲染速度快。 - **缺点**:学习曲线较陡峭,尤其是对于非开发人员;...
本教程将带你深入理解FreeMarker的核心概念和使用方法。 1. **FreeMarker的基本原理** FreeMarker的工作方式是通过读取由开发者编写的模板文件(.ftl),然后结合数据模型,生成最终的输出。模板文件主要包含静态...
FreeMarker的优点很多,比如它独立于Servlet,可以在没有Web服务器的情况下使用。它专注于展示层的生成,与主流Web框架如struts2、springmvc集成良好,使得开发更为简单易学。同时,它支持多种方式加载模板,例如从...
Freemarker是一个强大的模板引擎,常用于Java应用中的视图层开发,比如Web应用和电子邮件生成。它是一种声明式编程语言,允许开发者用简单的文本模板来动态生成HTML、XML或其他格式的文档。在这个“freemarker学习”...
FreeMarker与JSP和Velocity相比,具有以下优点: 1. 不允许在模板中编写Java代码,从而实现了严格的MVC分离。 2. 有助于实现美工和技术人员的工作分离,提高开发效率。 3. 页面是静态化的,有利于搜索引擎的收录。 4...
这些框架都是 Java 语言中常用的框架,各有其优缺点和应用场景。 MVC 框架的优点: 1. 分层有助于管理复杂的应用程序,可以在一个时间内专门关注一个方面。 2. 让应用程序的测试更加容易。 3. 也简化了分组开发。...
优点: Java EE标准,这意味着有很大的市场需求和更多的工作机会 上手快速并且相对容易 有大量可用的组件库 缺点: 大量的JSP标签 对REST和安全支持不好 没有一个统一的实现。既有SUN的实现,又有Apache的实现——...
其优点在于解耦合、易测试和强大的事务管理。然而,Spring的配置文件可能较为复杂,对于初学者来说有一定学习曲线。 总的来说,三大框架各有特点,Struts1和Struts2在MVC模式上有所不同,Spring则提供了更广泛的...
- **缺点**:需要编写Freemarker或Velocity模板,打造HTML结构,对前端技术有一定要求。 综上所述,选择JAVA动态生成Word和PDF的技术时,应根据项目具体需求、团队技能、跨平台需求等因素综合考虑。对于Word文档,...
在Java领域,有许多流行的框架可供选择,每种框架都有其独特的优点和缺点。以下是关于JSF、Spring MVC、Stripes、Struts 2、Tapestry和Wicket的详细比较: 1. **JavaServer Faces (JSF)** - **优点**:作为Java EE...
- 能无缝集成多种视图选项,如JSP/JSTL、Tiles、Velocity、FreeMarker,甚至Excel和PDF,提供了高度的灵活性。 - 基于IoC(Inversion of Control)的设计使其易于测试。 - 缺点: - 配置密集型,需要大量的XML...
JAVA 动态生成Word和PDF JAVA动态生成Word和PDF是JAVA开发中的一种常见需求,这里将详细介绍JAVA动态...JAVA动态生成Word和PDF有多种方案可以选择,每种方案都有其优缺点,选择哪种方案取决于具体的需求和项目要求。
Struts1的优点包括开源、结构清晰、支持异常处理和国际化、拥有丰富的标签库,解决了JSP中Java代码过多的问题。然而,它的缺点也很明显,如配置复杂、测试不便、依赖Web容器,且Action是单例模式,需要处理线程安全...
描述:本文将对Java Web开发中的主流框架进行比较,包括Struts、Spring MVC、WebWork、Tapestry和JSF,分析各自的优缺点,以帮助开发者选择最适合项目需求的框架。 ### Struts #### 优点: - **标准框架**:在业界...
- **优势**:提供更丰富的插件支持,如FreeMarker和Velocity模板引擎,支持AJAX和RESTful API,性能优于Struts 1。 - **改进**:引入了FilterDispatcher,处理HTTP请求更高效,解决了Struts 1中的Action实例创建...