`
ywChen
  • 浏览: 121083 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

freeMarker基础入门

阅读更多

FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML格式的文本用来自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包或者说是类库。 它不是面向最终用户,而是为程序员提供的可以嵌入他们开发产品的一款应用程序。

 

FreeMarker 不是 Web 应用框架。它是 Web 应用框架中的一个适用的组件,但是FreeMarker 引擎本身并不知道 HTTP 协议或 Servlet。它仅仅来生成文本。即便这样,它也非常适用于非 Web 应用环境的开发。要注意的是,我们使用 FreeMarker 作为视图层组件,是为给如 Struts 这样的 Model 2 框架提供现成的解决方案。 


 

 

【例】入门例子

FreemarkerExample

package freemarker;

import java.io.File;
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 FreemarkerExample {

	/**
	 * @param args
	 * @throws IOException 
	 * @throws TemplateException
	 */
	public static void main(String[] args) throws IOException, TemplateException {
		 /* 在整个应用的生命周期中,这个工作你应该只做一次。 */  
        /* 创建和调整配置。 */ 
        Configuration cfg = new Configuration(); 
        cfg.setDirectoryForTemplateLoading(new File("src/freemarker")); 
        cfg.setObjectWrapper(new DefaultObjectWrapper()); 
        /* 在整个应用的生命周期中,这个工作你可以执行多次 */  
        /* 获取或创建模板*/ 
        Template temp = cfg.getTemplate("test.ftl"); 
        /* 创建数据模型 */ 
        Map<String ,Object> root = new HashMap<String ,Object>(); 
        root.put("user", "Big Joe"); 
        Map<String ,Object> latest = new HashMap<String ,Object>(); 
        root.put("latestProduct", latest); 
        latest.put("url", "products/greenmouse.html"); 
        latest.put("name", "green mouse"); 
        /* 将模板和数据模型合并 */ 
        Writer out = new OutputStreamWriter(System.out); 
        //输出到文件
        //Writer out = new OutputStreamWriter(new FileOutputStream("D:/temp/helloword.html"),"GBK"); 
     
        temp.process(root, out); 
        out.flush(); 

	}

}

 

test.ftl

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> 
<head> 
  <title>Welcome!</title> 
</head> 
<body> 
  <h1>欢迎 ${user}!</h1> 
  <p>Our latest product: 
  <a href="${latestProduct.url}">${latestProduct.name}</a>! 
</body> 
</html>   

 

 

 

 

数据模型的创建是通过已经存在的程序计算得到的。至于模板开发者,数据模型像是树状结构(比如硬盘上的文

件夹和文件),正如本例中的数据模型,就可以如下形式来描述:

 

 

(root) 

  | 

  +- user = "Big Joe" 

  | 

  +- latestProduct 

      | 

      +- url = "products/greenmouse.html" 

      | 

      +- name = "green mouse" 

 

 

 

  比较之前你在模板中看到的${user}和${latestProduct.name}。作为一种比喻:数据模型就像计算机文件系统上的内容:根 root 和 latestProduct 对应目录(文件夹),user,url和 name 对应文件。url和 name 在 latestProduct 目录中,所以 latestProduct.name 就像是说latestProduct 目录的 name 一样。但是我所说的,这仅仅是个比喻,这里并没有真实的文件和目录。 

 

  概括地讲,模板和数据模型是 FreeMarker 所需,并用来生成输出内容的(比如之前展示的 HTML) :模板+数据模型=输出 

 

 

  • 大小: 19.7 KB
分享到:
评论

相关推荐

    freemarker入门代码

    在本文中,我们将深入探讨FreeMarker的基础知识,包括其核心概念、语法以及如何在实际项目中进行应用。 1. **核心概念** - **模板(Template)**:Freemarker的工作基于模板,模板是纯文本文件,其中包含静态文本...

    freemarker入门文档及例子

    二、Freemarker语法基础 1. 变量表示: `${variable}` 用于输出变量的值,`variable`是Java对象的属性或方法名。 2. 注释:`&lt;#-- comment --&gt;` 用于在模板中添加注释,不会出现在生成的输出中。 3. 输出处理:`...

    springboot集成freemarker入门案例

    这是一个基础入门案例,旨在帮助初学者快速理解这两个技术的结合。 Spring Boot是一个由Pivotal团队开发的Java框架,它简化了Spring应用的初始搭建以及开发过程。它内置了各种默认配置,使得开发者可以快速地创建...

    一个意义深刻 FreeMarker 入门例子之HelloWord

    本示例“一个意义深刻的FreeMarker入门例子之HelloWord”旨在帮助初学者理解并掌握FreeMarker的基本用法。 在Java Web开发中,FreeMarker与后端控制器如Servlet或Spring MVC中的Controller协同工作,允许开发者将...

    freemarker入门Demo

    Freemarker是一个强大的模板引擎,常用于Web应用中的视图层开发,它的主要目标是将显示逻辑与业务逻辑分离,实现 MVC...通过实践这些示例,你将能够快速掌握Freemarker的基本用法,并为实际项目开发打下坚实基础。

    JFinal+Maven+FreeMarker入门实例

    **正文** 本篇将深入探讨如何使用`JFinal`、`Maven`和`FreeMarker`构建一个入门级的Web应用程序。...通过这个入门实例,开发者可以快速上手并理解这三者如何协同工作,为后续的项目开发打下坚实基础。

    freemarker入门demo

    本教程将通过一个基础的"freemarker入门demo",帮助你理解Freemarker的工作原理和基本用法。 首先,让我们了解一下Freemarker模板语言(FTL)。FTL是Freemarker Template Language的缩写,它是一种声明式的标记语言...

    学习FreeMarker入门文档

    ### FreeMarker入门知识详解 #### 一、FreeMarker概述 FreeMarker是一款强大的模板引擎,它以Java语言编写,主要用于生成动态HTML网页,特别是在MVC(Model-View-Controller)架构中,作为视图组件,负责将模型...

    freemarker入门文档

    本入门文档将带你走进Freemarker的世界,帮助你掌握其基本概念和核心功能。 1. **模板语法** Freemarker模板语言(FML)主要由变量、控制结构(如条件语句和循环)、文本、注释等组成。例如,`${expression}`用于...

    freemarker入门共9页.pdf.zip

    模板是Freemarker的工作基础,它定义了输出文件的结构和格式,而数据模型则是填充这些模板的内容。在Freemarker中,数据模型是由Java对象构成的,这些对象可以是简单的值,如字符串、数字,也可以是复杂的对象,如...

    freemarker基础v1.1.pdf

    快速入门Freemarker,首先你需要创建一个Spring Boot项目,并添加对Freemarker的支持。这可以通过在`pom.xml`文件中添加`spring-boot-starter-freemarker`依赖来实现。在示例的`pom.xml`中,我们看到父工程指定了...

    FreeMarker入门指南(详细指南见附件)

    这篇《FreeMarker入门指南》将深入介绍其基本概念、语法以及在实际项目中的应用。 一、FreeMarker简介 FreeMarker是一个基于模板的Java库,用于生成文本输出。它的主要工作原理是将模板(template)与数据模型...

    FreeMarker教程+快速入门

    1. **FreeMarker基础** - **定义**:FreeMarker是一个Java模板语言,它将数据模型与视图分离,模板设计者只需关注页面布局,而开发者则专注于业务逻辑。 - **工作原理**:FreeMarker读取由Java应用程序提供的数据...

    freemarker项目(从入门到与struts2结合)

    **入门FreeMarker:** 1. **安装与配置**:FreeMarker是一个轻量级库,可以通过Maven或Gradle等构建工具引入到Java项目中。配置主要涉及设置模板目录和配置文件`freemarker.properties`,其中定义了FreeMarker的行为...

    freemarker快速入门

    本快速入门指南旨在帮助新手快速掌握Freemarker的基础知识。 1. **模板语言基础** Freemarker的模板语言由变量、控制结构(如条件语句和循环)以及文本组成。变量通常以`${}`包裹,用于输出数据模型中的值。例如,...

    freemarker入门

    ### Freemarker 入门详解 #### 一、Freemarker 概述 Freemarker 是一款功能强大的模板引擎,主要用于生成动态的 HTML 页面以及其他格式的文档。它将模板设计与后端逻辑分离,使得前端设计师可以专注于页面布局与...

    freeMarker入门

    在本文中,我们将深入探讨FreeMarker的基础知识,包括其工作原理、基本语法、以及如何在实际项目中使用。 1. **工作原理** FreeMarker的工作基于模板文件和数据模型。模板文件包含了HTML结构和FreeMarker指令,...

    freemarker入门手册

    本入门手册旨在为初学者提供一个基础且全面的了解,帮助快速掌握Freemarker的核心概念和使用方法。 1. **模板语言基础** Freemarker的模板语言(Template Language, TL)是一种简单的标记语言,它与HTML相似但不...

    freemarker学习资料汇总

    本压缩包集合了丰富的Freemarker学习资源,涵盖从基础到进阶的各种知识点,以下是这些文档中可能包含的详细内容: 1. **Freemarker中文手册.pdf**: 这份手册通常会详细介绍Freemarker的基本概念,如模板语言、...

    freemarker 入门指南

    本指南将带你一步步了解并掌握Freemarker的基础知识。 **一、Freemarker的基本概念** 1. **模板(Templates)**:模板是Freemarker的核心,它定义了最终输出的静态结构。模板文件通常使用`.ftl`为扩展名,由HTML、...

Global site tag (gtag.js) - Google Analytics