FreeMarker应用与开发.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FreeMarker应用与开发

FreeMarker应用与开发 学习内容 一、 FreeMarker技术概述 二、 FreeMarker开发环境与技术原理 三、 FreeMarker基本语法 四、 FreeMarker开发问题总结 第一章 FreeMarker技术概述 1.1 模板引擎技术 Freemarker 是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写,具有以下特点: (1)Freemarker 适合被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序。 (2)虽然Freemarker 具有一些编程的能力,但通常由Java程序准备要显示的数据,由Freemarker 生成页面,通过模板显示准备的数据 。 (3)Freemarker 不是一个Web应用框架,而适合作为Web应用框架一个组件。 (4)Freemarker 与容器无关,因为它并不知道HTTP或Servlet;Freemarker 同样可以应用于非Web应用程序环境。 (5)Freemarker 更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库。 (6)Freemarker 是免费的 。 数据模型+模版=输出 第二章 Freemarker开发环境与技术原理 Freemarker 对开发环境没有特殊要求,用普通的java应用程序+Freemarker相关的jar包,就可以使用这种技术了 2.1、创建配置实例: 1、首先你需要创建一个Configuration(freemarker.template.Configuration)的实例,设置其中的某些属性。Configuration 是存放FreeMarker 的Application 级别配置信息的一个重要地方。同时,它还负责创建及预解析模版(template) Configuration cfg = new Configuration(); // 指定一个加载模版的数据源 // 这里我设置模版的根目录 cfg.setDirectoryForTemplateLoading(new File(/where/you/store/templates)); // 指定模版如何查看数据模型.这个话题是高级主题… // 你目前只需要知道这么用就可以了: cfg.setObjectWrapper(new DefaultObjectWrapper()); 2.2创建数据模型(Data Model) 1、让我们来看一看怎么创建下面这个数据模型: (root) user = Big Joe latestProduct url = products/greenmouse.html name = green mouse 2.3获取模版(template) 1、模版对象一般就是指代freemarker.template.Template 实例。通常你可以从一 个Configuration 实例中获取模版实例。你可以通过getTemplate 这个方法来获得。 Template temp = cfg.getTemplate(test.ftl); 当你调用如上代码的时候,它将会创建一个与test.ftl 对应的模版实例,也就是读取 /where/you/store/templates/test.ftl 路径下的文件然后解析(编译)。模版对象一般存储的是经过解析过的模版内容 2.4把模版与数据模型合并 我们都知道,数据模型+模版=输出,而我们一旦拥有数据模型(root)和一个模版(template)那么我们就可以把他们合并获得输出。 以上这个过程是通过template 类的process 方法来实现的,该方法需要两个参数一个是表示数据模型的root 一个表示输出的Writer。它把解析过的文件输出到Writer 上。简单起见,我把输出指定到了控制台(标准输出) Writer out = new OutputStreamWriter(System.out); cess(root, out); out.flush(); 由于Template 实例是无状态的,一旦你获取了一个模版实例,那么你可以与不同的数据库模型多次合并。另外test.ftl 文件是在Template 实例被创建的时候就读取的,而不 是等到调用process 的时候才读取 第三章 FreeMarker基本语法 1、FreeMarker标记 FreeMarker标记的设计非常精炼,只有三种: 1) $ : ${expression} FreeMarker会在输出时用实际值进行替代 例如:${stockNum?default(‘’)} 2) # :标准的FTL标记。大部分FreeMarker指令都以#开始,可以明显地与h

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档