freemarker了解

Freemarker了解

         Freemark实现图形设计与应用程序分离,其实现是通过模版中密封的html来实现的。模版用servlet生成的数据动态生成html。模版语音编译速度快,输出接近静态的html页面;freemark与容器无关,因为它不知道http和servlet,freemarker同样可以用于非web程序中。Freemark适合框架中的视图组件。如struts2的。可以在模版中使用jsp标签,而且freemark是免费的。

         Freemark是模版,打开页面速度快,jsp的话第一次要编辑成servlet,所以要慢一些。Freemark本质是用java语言编写的模版引擎,基于模版来生成输出。所以不仅仅可以实现表现层,而且还可以生成xml、jsp、甚至java。

         Freemark实现表现层和业务逻辑的分离。

         Freemark提高开发效率。Jsp每次修改的时候都需要重新编译成servlet,所以第一次慢一点,在开发的时候需要频繁的修改jsp文件,所以浪费时间。而freemark不存在这个问题。

         Freemark模版技术,修改模版后可能会看到过期的数据。如生成静态的html,模版修改后没有即时的更新模版生成的html的话就会出现问题。

         Freemark中的变量必须赋值。要不然就报错。变量要求严格。

         Freemark的map中的key,限定为必须String。其他不行。

         Freemark不支持集群,为了编程的方便,把序列化的东西都放在了session中,如session、request。开发中方便,但是应用到集群中就会有问题。

         Freemark原理:模版+数据模型=输出

Freemark与strtus2

         Struts2框架技术对Freemarker做了很好的支持,开发人员只要熟悉Struts2的标签即可进行开发Freemarker模板文件

网络总结:

1、性能。velocity应该是最好的,其次是jsp,普通的页面freemarker性能最差(虽然只是几毫秒到十几毫秒的差距)。但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。

2、宏定义比jsp tag方便

3、内置大量常用功能。比如html过滤,日期金额格式化等等,使用非常方便

4、支持jsp标签

5、可以实现严格的mvc分离

缺点:

1、不是官方标准

2、用户群体和第三方标签库没有jsp多

原文地址:https://www.cnblogs.com/yanghuiping/p/4003008.html