FreeMarker在java项目中的应用
一、体验FreeMarker
FreeMarker是一个非常优秀的模板引擎,它能以非常简单的方式来输出数据显示。FreeMarker负责将一个数据模型(通常是一个Map对象)中的数据合并到模板中,从而生成输出。从而可以极好地分离显示逻辑和数据逻辑的设计,允许界面设计者更专注于显示逻辑的设计,而程序员则专注于提供逻辑数据。
二、FreeMarker在java项目中的应用示例
1、從官網下载FreeMarker所依赖的jar包 [http://www.freemarker.org]
???? 目录:
??? docs:包含FreeMarker的相关文档,用法和API文档
??? examples:FreeMarker的各种demo
??? lib:FreeMarker核心类库
??? src:各种源文件
?
2、將jar包導入到classpath中;
?
3、在Java程序中使用FreeMarker;
??? 模板文件:? myFreemarker.ftl
??? 文件內容:
??? <#-- 简单的FreeMarker模板 -->
??? ${name},你好!${msg}
??? 在項目中新建一個文件夾:templates,將模板文件放進去;
?
4、Java文件
package com.freenarker;import java.io.File;import java.io.OutputStreamWriter;import java.util.HashMap;import java.util.Map;import freemarker.template.Configuration;import freemarker.template.Template;/** * @ClassName: FreemarkTest * @Description: 模板處理類 * @author Liyongbin * @date 2011-2-15 下午08:40:18 * @version V1.0 */public class FreeMarkerTest {// 负责管理FreeMarker模板文件的Configuration实例private Configuration cfg;// 负责初始化Configuration实例private void init() throws Exception {// 初始化FreeMarker配置,創建一個Configuration實例cfg = new Configuration();// 设置模板文件位置cfg.setDirectoryForTemplateLoading(new File("templates"));}// 负责合并的方法private void process() throws Exception {Map<String,String> root = new HashMap<String,String>();root.put("name", "FreeMarker!");root.put("msg", "first FreeMarker demo");// 使用Configuration实例来加载指定模板Template t = cfg.getTemplate("myFreemarker.ftl");// 处理合并t.process(root, new OutputStreamWriter(System.out));}public static void main(String[] args) throws Exception {FreeMarkerTest ft = new FreeMarkerTest();ft.init();ft.process();}}?5. 運行結果:
??? FreeMarker!,你好,first FreeMarker demo