`
wangkechao.dream
  • 浏览: 45736 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
352630cf-f670-3416-b946-55dec5cd787c
设计模式
浏览量:29905
社区版块
存档分类
最新评论

简单FreeMaker

 
阅读更多

不说话,只有代码

1. 要先导入FreeMaker的包freemaker-2.3.8.jar

 

2. 代码

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class FreeMakerTemplate {

	public static void main(String[] args) throws IOException, TemplateException {
		/* 创建一个合适的configuration */
		Configuration cfg = new Configuration();
		// 加载配置文件
		cfg.setDirectoryForTemplateLoading(new File(
				"src/study/freemaker/template"));
		// 指定如何查看数据模型
		cfg.setObjectWrapper(new DefaultObjectWrapper());
		/* 而以下代码你通常会在一个应用生命周期中执行多次 */
		/* 获取或创建一个模版 */
		Template template = cfg.getTemplate("test.ftl");
		/* 创建一个数据模型Create a data model */
		Map<String, Object> root = new HashMap<String, Object>();
		root.put("root", "root");
		Map<String, Object> elements = new HashMap<String, Object>();
		root.put("elements", elements);
		elements.put("name", "king");
		elements.put("age", "30");
		elements.put("weight", "75kg");
		elements.put("gender", "M");
		/* 合并数据模型和模版 */
		Writer out = new OutputStreamWriter(System.out);//打印到控制台
		//生成到文件
		Writer outFile = new OutputStreamWriter(new FileOutputStream("src/study/freemaker/template/test.xml"), "gb2312");
		template.process(root, out);
		template.process(root, outFile);
		out.flush();
	}
}

 test.ftl

<root name="${root}"> 
   	<name>${elements.name}</name>
   	<age>${elements.age}</age>
   	<weight>${elements.weight}</weight>
   	<gender>${elements.gender}</gender>
</root>

 

运行结果:

<root name="root"> 

   <name>king</name>

   <age>30</age>

   <weight>75kg</weight>

   <gender>M</gender>

</root>

分享到:
评论

相关推荐

    freemaker软件和freemaker中文文档

    FreeMarker是一款强大的、开源的模板引擎...通过上述知识点,你可以更好地理解和使用FreeMarker,无论是进行简单的页面渲染还是构建复杂的Web应用,都能游刃有余。记得利用提供的中文文档,这将大大加快你的学习进度。

    freemaker简单小例子+ECharts例子

    在本示例中,“freemaker简单小例子”可能是指如何在Freemarker模板中插入动态数据并渲染成页面。基本流程包括以下几个步骤: 1. **创建Freemarker模板**:在`.ftl`文件中,你可以定义HTML结构,并使用`${...}`或`...

    freemaker 简单实现

    在"freemaker简单实现"的项目中,你可能包含以下步骤: 1. **引入依赖**:在你的Maven或Gradle项目中,添加FreeMarker的依赖库。例如,在Maven的pom.xml文件中添加: ```xml &lt;groupId&gt;org.freemarker ...

    Freemaker_入门+深入+开发指南+学习笔记

    为了更好地理解Freemaker的工作原理,我们可以通过一个简单的XML文件示例来展示如何使用Freemaker处理数据。 ```xml xmlns="urn:DruleForm-Lite.xsd"&gt; 类型1 类型2 ``` 针对上述XML文件,我们可以...

    java代码生成器(Freemaker)

    在这个场景中,我们关注的是一个基于FreeMarker(Freemaker)的Java代码生成器。FreeMarker是一个强大的、轻量级的模板引擎,主要用于生成动态Web内容,但在Java世界里,它也被广泛用于生成源代码、配置文件等静态...

    freemaker代码生成工具

    这款工具的核心理念是将内容与表现分离,允许开发者使用简单的模板语言来描述数据如何呈现。在给定的场景中,`freemaker` 被用来自动化生成常见的Java开发中的各种组件,如`javabean`、`action`、`service`、`dao`...

    FreeMaker IDE

    FreeMaker IDE是一款专为FreeMarker模板语言设计的集成开发环境(IDE)。FreeMarker是一个开源的、基于Java的模板引擎,常用于Web应用开发,能够与Servlets或JavaServer Pages(JSP)配合工作,用于生成动态内容。它...

    freemaker 学习手册

    `&lt;#recurse&gt;`和`&lt;#visit&gt;`指令使得遍历XML树变得简单直观,模板可以直接访问XML对象模型,简化XML数据的处理工作。 数据模型在FreeMarker中通常表现为树形结构,包含hashes(类似目录,用于存储子变量)和scalars...

    freemaker

    这些对象可以是简单的值,如字符串、数字,也可以是复杂的对象,如JavaBean、集合或Map。 3. **FreeMarker配置(Configuration)**:配置对象负责设置FreeMarker的行为,如加载模板、定义全局变量、设置默认编码等...

    FreeMaker API CHM

    FreeMaker API CHM 文件是关于FreeMarker模板引擎的英文版API文档,它是以CHM(Microsoft Compiled HTML Help)格式编译的,这种格式通常用于存储和查看离线帮助文档。FreeMarker是一个开源的Java库,它允许开发者用...

    freemaker工具

    freemaker工具是验证所写的freemaker模版是不是正确 使用只需写一下要传入的数据结构 把需要验证的模版贴到templates下的文件中运行就OK了 超级简单使用 比起启动项目一次一次的访问高效多了 提高开发速度 共同学习...

    Spring-FreeMaker-Mybatis.zip_DEMO_extjs freemaker_mybatis_mybati

    在本项目"Spring-FreeMaker-Mybatis.zip_DEMO_extjs freemaker_mybatis_mybati"中,我们将探讨一个集成Spring、Mybatis以及FreeMarker技术的简单DEMO,它主要用于演示如何利用这些技术来构建一个高效的Web应用。...

    SpringMVC+Freemaker Demo

    - **模板语言**:FreeMarker使用简单的文本文件作为模板,用${}和#{}包围变量和表达式,、等控制结构。 - **数据模型**:应用将数据模型传递给FreeMarker,模型中的对象可在模板中使用。 - **分离关注点**:...

    freemaker导出word的doc_docx_带动态图片及word转pdf工具类_jar_万能整理汇总.rar

    本资源“freemaker导出word的doc_docx_带动态图片及word转pdf工具类_jar_万能整理汇总.rar”显然是一个集合了多种功能的压缩包,旨在帮助开发者高效地使用Freemarker来处理复杂的Word文档生成任务,并且包含了将Word...

    spring boot 整合mybatis+MySQL+freemaker+druid

    FreeMarker模板语法简单,允许开发者用自然语言的方式编写HTML。 4. **Druid数据源**: Druid是一个高性能、功能强大的数据库连接池,提供了监控、SQL解析、参数解析等特性。在项目中,我们可以通过引入Druid的...

    freemaker2word

    FTL模板语言是一种简单的标记语言,允许开发者在模板中插入变量、控制结构(如循环和条件语句)以及调用方法。 在"freemaker2word"项目中,我们有以下关键知识点: 1. **FreeMarker配置**:首先,你需要设置一个`...

    freemaker+struts2

    2. **模板语言**:FreeMarker 使用直观且强大的模板语言,允许开发者通过简单的语法嵌入变量和控制结构,比如条件语句和循环。 3. **独立于容器**:FreeMarker 与特定的 HTTP 协议或 Servlet 容器无关,因此可以在...

    struts2 freemaker exampler

    FreeMarker使用简单的语法,如`${expression}`来引用数据模型中的变量,`&lt;#if&gt;`、`&lt;#foreach&gt;`等控制结构来控制输出。这种分离让开发者可以专注于业务逻辑,而设计师可以专注于页面的视觉呈现。 **Struts2与...

    深入浅出freemaker

    它是基于模板的,允许开发者将逻辑与表现分离,使代码更易于维护和扩展。本篇文章将根据提供的"深入浅出FreeMarker"的标题和描述,结合...无论是简单的数据展示,还是复杂的页面逻辑处理,FreeMarker都能助你一臂之力。

Global site tag (gtag.js) - Google Analytics