- 浏览: 219606 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
zzhyq:
有没有后台是ASHX 的呀
Ext.tree.TreePanel -
693593336:
谢谢作者分享,正好用上
Ext.tree.TreePanel -
greatwqs:
提供一个下载的demo不是更好
基于servlet的 Freemarker Demo
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写
FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序
虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图)
FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件
FreeMarker与容器无关,因为它并不知道HTTP或Servlet;FreeMarker同样可以应用于非Web应用程序环境
FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库
FreeMarker是免费的
而且你还可以通过Eclipse的插件来编辑FreeMarker,经过验证,FreeMarker 最好的 Eclipse 编辑插件是 JBoss Tools。
FreeMarker特性
1、通用目标
能够生成各种文本:HTML、XML、RTF、Java源代码等等
易于嵌入到你的产品中:轻量级;不需要Servlet环境
插件式模板载入器:可以从任何源载入模板,如本地文件、数据库等等
你可以按你所需生成文本:保存到本地文件;作为Email发送;从Web应用程序发送它返回给Web浏览器
2、强大的模板语言
所有常用的指令:include、if/elseif/else、循环结构
在模板中创建和改变变量
几乎在任何地方都可以使用复杂表达式来指定值
命名的宏,可以具有位置参数和嵌套内容
名字空间有助于建立和维护可重用的宏库,或者将一个大工程分成模块,而不必担心名字冲突
输出转换块:在嵌套模板片段生成输出时,转换HTML转义、压缩、语法高亮等等;你可以定义自己的转换
3、通用数据模型
FreeMarker不是直接反射到Java对象,Java对象通过插件式对象封装,以变量方式在模板中显示
你可以使用抽象(接口)方式表示对象(JavaBean、XML文档、SQL查询结果集等等),告诉模板开发者使用方法,使其不受技术细节的打扰
4、为Web准备
在模板语言中内建处理典型Web相关任务(如HTML转义)的结构
能够集成到Model2 Web应用框架中作为JSP的替代
支持JSP标记库
为MVC模式设计:分离可视化设计和应用程序逻辑;分离页面设计员和程序员
5、智能的国际化和本地化
字符集智能化(内部使用UNICODE)
数字格式本地化敏感
日期和时间格式本地化敏感
非US字符集可以用作标识(如变量名)
多种不同语言的相同模板
6、强大的XML处理能力
<#recurse> 和<#visit>指令(2.3版本)用于递归遍历XML树
在模板中清楚和直觉的访问XML对象模型
开源论坛 JForum 就是使用了 FreeMarker 做为页面模板。
copy form http://www.oschina.net/p/freemarker/
收集优点:
taglib、freemarker 、jsf、Velocity 偶都用过,最后还是觉得frremarker用着最顺心,下面我就说说个人比较喜欢的优点:
1.freemarker 是一个干净轻量的模板引擎,源代码结构也很清晰.
你可以直接写一个java main方法来调用它,我的代码生成器就是这么做的.
2.freemarker 写出来的页面一般都是xml格式友好的,也就是说你可以写出很规范的xhtml,而且还可以直接使用一些xml的代码格式化工具直接美化.而且很容易发现其中缺少或者嵌套错误的tag
3. 个人觉得freemarker 和taglib,jsf至少在使用层面上很像,但是freemarker 的macro容易写,几行代码就搞定了,taglib和jsf需要写一堆java文件和tld文件,繁琐得很
4.freemarker 不能直接调用java对象的method. 这点有些人认为这是个缺点,但是我不这样认为. 个人觉得对于一个view层的东西来说,你要做的就是把view展现好就行了,不要再view中调用业务方法. 以前在公司做产品和后来做项目时就一再和手下的coder强调这点,但是因为种种原因,大家都还是会偷懒,直接在view中调用.用了fm后就不一样了, 现在你想在view中调用业务方法,那么你需要绕n个圈才能做到,还不如直接按照标准的mvc来做.
5.freemarker 内置了很多web编程中很常用的方法. 例如js_string ,html_string, ${lastUpdated?string.short}, ${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")} 这些东西虽然都很小,但是胜在常用啊,而且用起来很方便
6. eclipse的插件很好用,可以代码提示自动完成. 当然现在只有jboss tools下的那个插件.不过那个插件开发基本停止了,而且维护人员特别官僚,我给他们报了好几个bug,而且还提供了对应的修改代码,结果他们非要我给 他们提供patch文件,而且还要写对应的单元测试代码. 偶滴神啊,我只是写web的,eclipse的那套东西实在是不熟悉啊.
7. fm的macro的参数可以设置缺省值, 用起来很方便.
=========================http://yesmeshtu2008-163-com.javaeye.com/blog/505724
用FreeMarker有写脚本的感觉,改点什么一刷新就出来了,自身带的函数、表达式及指令非常周全,实在不满足需要时,只要写个macro就OK了。
我现在还把一些常用的,又不值得放到数据库中的分类信息用assign定义到util.ftl中了,可以很方便的使用。
比如:
<#-- 字形 -->
<#assign fontstyleMap={
"0":"常规",
"1":"斜体",
"2":"粗体",
"4":"下划线",
"8":"粗斜体"
}>
使用FreeMarker有一个非常不好的地方就是id的处理,数字型的,一旦超过3位,一定要使用 c 函数转一下,否则就会带上逗号分隔,如:38,383,838。吃了不少亏
用jsp有时候比较迷茫是自己写个tag整形,还是放到Action里处理好。还有就是在jsp里写代码的度也不好把握
===========
选择freemarker的原因:
1、性能。velocity应该是最好的,其次是jsp,普通的页面freemarker性能最差(虽然只是几毫秒到十几毫秒的差距)。 但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。
2、宏定义比jsp tag方便
3、内置大量常用功能。比如html过滤,日期金额格式化等等,使用非常方便
4、支持jsp标签
5、可以实现严格的mvc分离 //几乎公认。
=======================
FreeMarker缺点:
freemarker的map限定key必须是string,不支持其他数据类型。 freemarker的变量必须有值,没有被赋值的变量就会抛出异常。程序里面几乎所有可能出现空值的变量统统需要加上${xxx?if_exists},有些循环条件还需要写if判断。 不能在群集上面发布应用,freemarker支持在页面里面直接操作Session,request等,例如${Session[...]},但不能对其序列化。
===========================
1、首先freemarker是模板,当你打开页面的时候freemarker可也说是加载最快的。jsp则需要转换为servlet所以第一次要慢一些。 2、struts2的所有标签都是用freemarker写的,这也就是说你在freemarker中就可以直接引用struts2的任何标签,相当的方便。jsp不行吧。struts也不行。只有struts2。 3、如果使用了freemarker它与json一起使用会方便的很多。//这个可以认同的。
===============================
发表评论
-
Singletons and lazy loading
2011-09-26 19:47 919The Java Memory Model # ... -
JVM blogs
2011-09-14 21:40 473话说是 【JVM详解的专题】,很多文章的差不多的,有的详 ... -
effective Java _Generic
2011-09-12 12:03 0#23 -
Class Loader
2011-08-28 16:47 784专栏合集(一):Java深度历险 pdf已上传1 ... -
Study Linkinginginginginginginging
2011-08-27 10:42 738#1 java 工程和类等路径汇总 #2 让Apac ... -
How to send Email
2011-08-26 15:32 6051.java mail 使用介绍 2.Java ... -
Java_Try_Finally
2011-07-18 11:51 650public class TestTryCatch { ... -
Java Class ClassLoader
2011-07-15 17:05 1032下午在看《Java 深度历险》,对Class & ... -
关键字 final & transient
2011-06-08 16:49 970final 详见: http://java.chinaitl ... -
课程设计3
2010-01-04 14:09 781题目3:动态分区式存储管理的存储分配和回收 一、设计目的 ... -
课程设计1
2010-01-04 14:24 751采用的是C++语言编写的,但PCB的数据结构是符合要求的。 ... -
os课程设计后感
2010-01-04 14:48 543今天终于把操作系统的实验给终结了。基本要求算是符合了,可能表 ... -
java作业01
2010-03-06 16:02 665package homework01; public cla ... -
Java作业02
2010-03-11 14:22 794package homework02; import jav ... -
File函数返回当前路径
2010-03-12 19:37 673package netWorkMoreThreadCopy; ... -
多线程文件复制(界面)1
2010-03-12 23:45 943package netWorkMoreThreadCopy; ... -
Java IO 转摘
2010-03-15 00:26 514java中的io中的(input/output)str ... -
java作业03
2010-03-17 00:59 699package homework03; import jav ... -
Java作业
2010-03-17 01:19 642package homework03;import java. ... -
java作業3
2010-03-18 18:36 593package homework03;/** 首先编写一个抽象 ...
相关推荐
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写,FreeMarker被设计用来生成HTML Web页面(为了提高页面的访问速度,把页面静态化),特别是基于MVC模式的应用程序
JAVA源码Java模板引擎FreeMarker.tar
java资源Java模板引擎 FreeMarker.tar提取方式是百度网盘分享地址
Java模板引擎FreeMarker是一款强大的开源模板技术,常用于Web应用中的动态内容生成,尤其是在MVC架构中,作为视图层的解决方案。它与Spring、Struts等框架配合使用,能够将业务逻辑与页面展示分离,使得开发者可以...
FreeMarker是一个强大的、开源的Java模板引擎,常用于Web应用中的动态内容生成,尤其是在MVC架构中,作为视图层的技术。它与JSP、JSTL等技术不同,FreeMarker是模型和视图完全分离的,使得开发者可以专注于业务逻辑...
### Java模板引擎Freemarker教程知识点详解 #### 一、FreeMarker概述 FreeMarker是一个用于生成输出文本的模板引擎,其应用广泛,特别是在Java应用程序中作为视图层的一部分。它支持多种类型的输出文本,包括HTML、...
FreeMarker是一个强大的、开源的Java模板引擎,常用于Web应用中的动态内容生成,尤其是在MVC架构中,作为视图层的实现技术。它与JSP类似,但更专注于分离业务逻辑和显示逻辑,使得开发者可以编写更加清晰、独立于...
Java模板引擎Freemarker是一个强大的、开源的模板引擎,它被广泛应用于Web开发中,用于动态生成HTML或其他类型的文本输出。在Java应用中,Freemarker允许开发者将业务逻辑与表现层分离,使得代码更加清晰,更易于...
Java模板引擎之FreeMarker FreeMarker是一个开源的Java模板引擎,它被广泛应用于Web开发中,用于生成动态HTML、XML或其他格式的文本。这个强大的工具允许开发者将逻辑代码与表现层分离,使得网页设计人员可以专注于...
FreeMarker是一个强大的、开源的Java模板引擎,常用于Web应用中的动态内容生成,尤其是在MVC架构中,与Spring等框架配合使用。它将业务逻辑与显示逻辑分离,使得开发者可以专注于设计视图,而不用关心如何将数据绑定...
FreeMarker是一个强大的、开源的Java模板引擎,常用于Web应用中的动态内容生成,尤其是在MVC(Model-View-Controller)架构中,它作为View层的一部分,将数据模型和HTML或其他类型的文档模板结合,生成最终的网页。...
FreeMarker是一个强大的、开源的Java模板引擎,常用于Web应用中的动态内容生成,尤其是在MVC(Model-View-Controller)架构中,它作为View层的实现。FreeMarker与Spring、Struts等框架集成良好,允许开发者将业务...
FreeMarker是一个强大的模板引擎,常用于生成HTML、XML等动态内容,但也可以结合其他库来生成PDF。本篇文章将深入探讨如何在Java中使用FreeMarker生成带有盖章的PDF合同文件。 首先,让我们了解FreeMarker的基本...
在这里将通过Freemarker这个模板引擎来实现导出 Word,项目不限于Swing,SSH,SSM,Spring Boot 之类的 ————————————— Spring Boot,Freemarker 编辑好格式的Word文档 1份 将Word文档里需要填充的地方...
总的来说,`基于Java的实例源码-模板引擎 FreeMarker.zip`提供的内容可能包括一个简单的Java应用,演示了如何集成FreeMarker,创建数据模型,加载模板并生成输出。这个实例对于学习和理解FreeMarker的工作原理非常有...
本文将对JSP、Thymeleaf 3、Velocity 1.7、Freemarker 2.3.23等四种主流Java模板引擎的性能进行对比,以帮助开发者选择合适的模板引擎。 JSP模板引擎 JSP(JavaServer Pages)是Java Servlet技术的扩展,用于生成...
该项目深入解析并优化了基于Java语言的FreeMarker模板引擎,源码包含24个文件,其中包括12个Java源文件、4个FTL模板文件、3个XML配置文件、2个属性文件以及其他类型文件。项目结构清晰,旨在提升模板引擎的性能与...
Java 使用 FreeMarker 模板技术导出 Word 是一种常见的数据动态生成文档的方法,它结合了 Java 的编程能力和 FreeMarker 模板引擎的强大功能,能够帮助开发者高效地生成结构化的 Word 文档。FreeMarker 是一个开源的...
通过三种不同的方式(freemarker+jfreechart、xDoc、POI),根据模板创建Word文件。可以动态修改Word中表格(table)、图表(chart)等数据。导入工程后,可直接运行xxxDemo文件,查看文档生成效果。详见压缩包中的...
本示例关注的是如何使用FreeMarker模板引擎来实现这个功能,并且包含在Word文档中插入图片的能力。FreeMarker是一个强大的、轻量级的模板语言,常用于Java应用中的视图层渲染。 首先,理解FreeMarker的基本概念。...