freemarker
来源:互联网 发布:matlab调用c和java 编辑:程序博客网 时间:2024/06/11 07:12
Freemarker简单入门
简单来说,freemarker是一种模版引擎,结合java生成文本输出。
好处:有些数据库中的数据(比如有些配置信息),需要被前台频繁调用,数据库压力比较大,但是这些数据的更新频率也很小,在数据库更新时,将相应的内容静态化,避免了大量的数据库请求。
模板开发
ftl模板使用的数据一般为后台返回的modelandview中的对象,整个数据是一个树形结构,用点获取变量的值。
例如root.animals.mouse.size()
ftl标签在页面上是不显示的,根据数据模型来做一些逻辑控制,使得html等能够根据不同的条件显示不同的内容。如下:
插值:${…}
FTL Tags标签:一般标签#,用户自定义标签@
Comments注释:<#–和–>
Directives指令:FTL标签
具体语法可以参照 http://blog.csdn.net/fhx007/article/details/7902040
程序开发
创建配置实例
Configuration cfg = new Configuration();
// 指定模板文件从何处加载的数据源,这里设置成一个文件目录。
cfg.setDirectoryForTemplateLoading(
new File(“/where/you/store/templates”));
// 指定模板如何检索数据模型,这是一个高级的主题了…
// 但先可以这么来用:
cfg.setObjectWrapper(new DefaultObjectWrapper());
创建数据模型
使用java.lang(比如String Number等)和java.util(List和map等)还有自定义java bean构建数据对象
比如// 创建根哈希表
Map root = new HashMap();
往root里添加数据,数据仍然可以为哈希表(任意深度)。
获得模版
Template temp = cfg.getTemplate(“test.ftl”);
getTemplate 方法会创建一个test.ftl的template实例,
合并模板和数据模型
可以输出、生成新文件等。
Writer writer = new OutputStreamWriter(System.out);//输出
或者 = new FileWriter(file);//写入文件
Temp.process(root,writer);
Writer.flush();
Writer.close();
一般情况下,也可以预先编写ftl文件,在Spring项目中controller处理请求时,可以new 一个modelandview,将预先写好的ftl的名字传进去。这跟android编程中将xml布局文件塞给activity或者fragment很相似。
PS:由于实习项目有用到Freemarker,所以简单了解了一下,有误解的地方请指正。
- freemarker
- freemarker
- FreeMarker
- FreeMarker
- freemarker
- freemarker
- freemarker
- Freemarker
- freemarker
- freemarker
- FreeMarker
- freeMarker
- freemarker
- FreeMarker
- FreeMarker
- FreeMarker
- FreeMarker
- freemarker
- Android中的动态加载机制
- JavaScript---网络编程(2)-函数与数组
- 传智播客PHP:打造让对手大角度仰视的大堤坝
- Java RMI远程接口调用介绍与使用
- Liunx下安装Redis单机版,以及集群
- freemarker
- mysql 监控 sql执行语句
- 排序之快速排序
- SICP 练习1.17
- 排列函数模板
- codeforces 660C Hard Process
- 函数指针及含参函数指针做参数的实现
- leetcode Jump Game
- StackOverflowError