`
ywChen
  • 浏览: 118081 次
  • 性别: 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基础实现代码,帮助你更好地freemarker入门

    freemarker快速入门

    适合新手快速了解入门的资料,里面涉及到的都是基础知识

    深入浅出FreeMarker(一)-基础教程.pdf

    分享目标  FreeMarker介绍  开发指南-5分钟入门  开发进阶  实例应用讲解  常用FreeMarker资源

    超完整FreeMarker中文教程,代码

    什么是FreeMarker? ................................................................................................. 7 我们应该阅读什么内容? .............................................................

    Freemarker使用手册、api、中文版教程

    一、快速入门..............................................................4 1.1、创建配置实例..............................................................................4 1.2、创建数据模型(Data ...

    Struts2+freemarker

    Struts2和FreeMarker结合,表现层使用FTL标签,并在FTL页面中使用Struts2标签,供入门的朋友用,属最最基础的东东. 方家批评!

    Java学习指南(11) FreeMarker与MVC框架

    〖课程体系〗JavaWeb相关课程:- HTML网页基础教程 - VUE框架基础 - 网站开发入门教程 - 网站开发进阶教程 - JDBC数据库教程 - FreeMarker_MVC原理教程- Spring系列课程、MyBatis、Redis等系列课程

    FreeMarker中文指导手册

    FreeMarker 手册 .......................................................................................................... 1 用于 FreeMarker 2.3.18 .......................................................

    FreeMarker 手册

    FreeMarker 手册 .......................................................................................................... 1 用于 FreeMarker 2.3.18 .......................................................

    FreeMarker设计指南

    快速入门 (1)模板 + 数据模型 = 输出 (2)数据模型 (3)模板 2、数据模型 (1)基础 (2)Scalar变量 (3)hashes 、sequences和集合 (4)方法 (5)宏和变换器 (6)节点 3...

    Freemarker教程_中文版.pdf

    一、快速入门..............................................................4 1.1、创建配置实例..............................................................................4 1.2、创建数据模型(Data ...

    Struts2入门教程(全新完整版)

    1.基础表单标签 40 2.单选按钮和复选框: 41 3.三种方式实现下拉列表 41 4.二级联动 42 5.其它表单标签 44 6.其它常用标签的使用(代码参名为“补充”的文件夹下的tag.jsp) 45 七、国际化 47 1.action级别下的国际...

    freemaker模板教程

    FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,...本教程很适合入门或者有点基础的!

    Spring全家桶核心篇:SpringBoot快速入门 源码

    内容概要:该资源是Spring全家桶视频课程的第三部分Spring Boot的源码,其对于Spring Boot的最常用的第一个小程序、JavaConfig和常见注解、启动改变、热部署、Springboot整合Thymeleaf/freemarker/JSP、异常处理、...

    Java学习指南19 JavaFX入门

    一、课程简介 这是『Java学习指南系列』的第19篇教程 ,是Java开发的高级课程,介绍JavaFX的...〖网站开发系列〗:包含网页基础、网站入门、数据库、网站中级、FreeMarker、网站高级、项目应用、MyBatis、Redis等课程。

    java后台开发入门(springboot快速入门)

    即便你是编程小白,没有任何编程基础也可以学习本课程。 知识点 1,Java 2,springboot 3,freemarker 4,bootstrap4.3 5,Javaweb 6,微信小程序 同时会借助当下最热门的微信小程序来作为我们的前端展示。所以课程...

    kuris-p2p_learning_loan-master.zip

    非常适合新手入门的springboot项目,存有一定的bug,前端集成了freemarker,建议有一定的基础后,下载本资源进行后续开发

    【SpringBoot】Spring Boot 2小时入门基础教程

    第一章: 以hello word为切入点详细讲解返回json数据,整合jsp/freemarker模板。 第二章:servlet、过滤器、监听器、拦截器配置及使用场景 第三章:讲解日志、静态资源、启动加载数据处理方式 第四章:数据库配置,...

    [Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版) 1/12

    第2章 Struts 2下的HelloWorld,第3章 Struts 2基础,第4章 深入Struts 2,第5章 Struts 2的类型转换,第6章 文件的上传和下载.,第7章 Struts 2的拦截器,第8章 Struts 2的输入校验,9.2 Struts 2的国际化入门,...

    Java反射机制与框架原理

    一、课程简介 这是『Java学习指南系列』的第18篇教程 ,是Java开发的高级课程,介绍反射...〖网站开发〗系列:包含网页基础、网站入门、数据库、网站中级、FreeMarker、网站高级、项目应用、MyBatis、Redis等课程。

Global site tag (gtag.js) - Google Analytics