`
xuyuanshuaaa
  • 浏览: 394812 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

表示层技术freemarker

 
阅读更多
1
XSLT是基于XML的表现层模板技术,伴随着XML的大量使用。XSLT也日渐成熟XSLT作为一个通用表现层框架,拥有最好的平台适应性,
几乎所有的主流程序设计语言都提供了XLST支持,现有的XLST模板可以简单的移植到不
同的语言平台,如将J2EE应用中的XSLT移植到.net平台,这样的可移植性是其他专用
模板技术,如Velocity和Freemarker难以达到的。
不过,认为,目前在项目中大量采用XSLT技术尚不可取, 
  

Velocity
Velocity 在诸多项目中得到了广泛应用,不仅
限于Web 开发,在众多代码生成系统中,我们也可以看到Velocity 的身影 
  

FreeMarker
与Velocity 相比,FreeMarker 对表现逻辑和业务逻辑的划分更为严格,
Freemarker在模板中不允许对Servlet API进行直接操作(而Velocity可以)
。而FreeMarker 对JSP Tag 的支持似乎为这个问题又打开
了大门。这一点上,我们可以将FreeMarker看作是仅允许使用TAG的JSP页面(实
际上,FreeMarker的表达式语法与EL语法也非常类似。 
  
  
freemarker 
. 取Application范围的对象 
     ${Application.myApplicationAttribute}  
   
取session范围的对象 
     ${Session.mySessionAttribute}  
   
取request范围的对象 
      ${Request.myRequestAttribute}  
   
.取request parameter范围的对象
     ${Parameters.myParameter}  
   
取context parameter范围的对象
${stack.findValue('#myContextParam')}   
:D         

一、 什么是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的优点和缺点,旨在抛砖引玉。有什么问题可以留下您的宝贵留言,我非常愿意与大家讨论。
分享到:
评论

相关推荐

    FreeMarker

    10. **与其他技术的集成**:FreeMarker 能很好地与Spring框架、Struts框架等结合使用,提供Web应用的视图层解决方案。同时,它也可以与各种数据源(如数据库、XML文件)交互,获取数据。 综上所述,FreeMarker是一...

    freemarker\Freemarker教程_中文版

    Freemarker是一款强大的模板引擎,用于将数据模型与表示层分离,从而实现在Web开发中的动态页面生成。根据所提供的文件信息,我们可以详细探讨以下几个关键的知识点: ### 1. 创建配置实例 在Freemarker中,`...

    freemarker格式化缩进文本或include指令

    它与Java语言紧密集成,允许开发者通过模板语言(Template Language)来分离应用程序的数据和表现层逻辑。在这个场景中,"freemarker格式化缩进文本或include指令"主要涉及了两个重要的FreeMarker特性:格式化输出...

    FreeMarker实例教程,手把手教你FreeMarker的方方面面

    - **基本内容**:讲解了FreeMarker中数值的表示方式以及各种类型的使用场景。 - **类型**:深入探讨了FreeMarker支持的不同数据类型及其特点。 #### 3. 模板 - **总体结构**:概述了模板文件的基本结构和组成部分...

    FreeMarker手册.pdf

    4. **变量和表达式**:在FreeMarker中,`${}`用于表示表达式,它会计算表达式的结果并将其插入到输出中。变量可以直接引用数据模型中的对象或属性,如`${user.name}`。 5. **指令**:FreeMarker的指令以`<#...>`...

    FreeMarker中文文档.pdf下载

    FreeMarker是一个开放源代码的模板引擎,它能够将数据模型与表现层分离,使开发人员能够更加专注于业务逻辑的实现,而让前端工程师或设计师专注于界面的设计。这种模式有助于提高开发效率,并且使得维护变得更加容易...

    freemarker操作手册-完整freemarker教程

    Freemarker是一个强大的模板引擎,常用于Web应用中的视图层开发,特别是在Java环境中,它作为MVC设计模式的一部分,负责生成动态HTML或其他格式的文本。本教程将深入讲解Freemarker的核心概念、语法和实际应用,帮助...

    freemarker概述

    3. **MVC模式**: 在MVC模式下,FreeMarker负责视图层,即展示层,与控制器和模型层解耦,提高了软件的可维护性和扩展性。 #### 四、FreeMarker的核心功能 - **通用目标**: - **多类型文本生成**: 支持生成多种格式...

    freemarker-2.3.23-中文手册.zip

    Freemarker是一个强大的、开源的模板引擎,常用于Java Web应用中的视图层技术,它允许开发者使用简单的标记语言(Markup Language)来控制显示逻辑,而无需深入理解HTML或者其他前端技术。这个“freemarker-2.3.23-...

    freemarker-2.2.8.zip

    Freemarker是一个强大的模板引擎,主要用于生成动态HTML、XML或其他文本格式的输出,常用于Web应用中的视图层。在Java开发中,它是一个轻量级的开源库,与Spring框架和其他MVC模式的框架结合使用广泛。这个...

    Freemarker2.3.16_带简单教程

    1. **基本语法**:Freemarker使用简单的模板语言,主要包括变量表示(${})、控制结构(if/else、foreach)、条件表达式(?)和函数调用(例如,日期和时间的格式化)。 2. **模板设计模式**:如如何定义模板布局,...

    新手理解FreeMarker的Project

    - **预处理**:FreeMarker读取模板文件,编译成内部的中间表示(AST)。 - **合并**:当请求到达时,将数据模型与编译后的模板结合,生成最终的输出字符串。 - **安全隔离**:FreeMarker通过安全设计,防止恶意...

    struts2中使用freeMarker

    FreeMarker则是一个强大的、基于模板的Java模板引擎,常被用作Struts2中的视图层技术,帮助开发者将数据动态渲染成HTML或其他格式的文档。 在Struts2中使用FreeMarker,主要涉及以下几个核心概念和步骤: 1. **...

    freemarker入门文档

    在Freemarker中,变量通过`$`符号引用,如`${user.name}`表示访问`user`对象的`name`属性。表达式可以包含算术运算、比较运算、逻辑运算等,支持链式调用和安全导航操作符防止空指针异常。 3. **指令** ...

    freemarker.jar用于jdk1.8下使用

    7. **与Spring Framework集成**:在Spring MVC中,Freemarker可以作为视图解析器使用,通过配置`FreeMarkerConfigurer`和`FreeMarkerViewResolver`,可以轻松地将Freemarker与Spring的控制器层结合。 8. **模板继承...

    freemarker的shiro标签

    3. **匿名访问与登录需求**:Shiro标签还提供了检查用户是否已登录的功能,例如`<@shiro.anonymous>`表示匿名用户可以访问,而`<@shiro.authc>`则表示只有登录用户才能访问。这些标签可以帮助你轻松地创建公共和私有...

    springboot整合freemarker生成静态html的demo.zip

    FreeMarker是一个强大的、开源的模板语言,它允许开发者将业务逻辑与视图层分离,使得前端设计更加灵活。 首先,我们需要在SpringBoot项目的`pom.xml`文件中添加FreeMarker的依赖: ```xml <groupId>org.spring...

    freemarker-2.3.13.jar.zip

    总之,Freemarker作为一款强大的模板引擎,通过其灵活的模板语言和数据驱动机制,极大地简化了Web应用的视图层开发。"freemarker-2.3.13.jar.zip"这个文件是这个引擎的一个历史版本,它包含了一切运行和利用...

Global site tag (gtag.js) - Google Analytics