freemarker

原创 2016年06月01日 18:59:26

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 手册》

  • 2017年11月13日 16:53
  • 4.46MB
  • 下载

FreeMarker 使用

  • 2017年10月16日 10:18
  • 11.85MB
  • 下载

FreeMarker基本用法

测试登录页面 用户名: ...
  • xfilson
  • xfilson
  • 2011年06月12日 13:05
  • 3907

freemarker插件

  • 2017年11月07日 20:26
  • 876KB
  • 下载

springMVC3.2+Hibernate4+freemarker

  • 2017年10月20日 15:32
  • 58KB
  • 下载

freemarker函数功能的使用之时间处理

freemarker函数功能的使用 java后台功能部分: 1、格式化时间格式 public static String formatDate(Date date) {         forma...

springMVC+freemarker框架

  • 2017年11月08日 10:07
  • 77KB
  • 下载

基于Struts2、Freemarker的分页组件实现(附工程源码)

基于Struts2、Freemarker的分页组件实现(附工程源码) 本文为原创,欢迎转载,转载请注明出处BlogJava。 本次分页组件着重于页面(Freemarker部分)、及Actio...

FreeMarker中文API

  • 2017年11月01日 15:12
  • 44KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:freemarker
举报原因:
原因补充:

(最多只允许输入30个字)