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 root = new HashMap();
		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

你可能感兴趣的:(Java编程)