freeMarker入门
博客专区 > meshwon 的博客 > 博客详情
freeMarker入门
meshwon 发表于1年前
freeMarker入门
  • 发表于 1年前
  • 阅读 5
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。它的设计主要被用来生成HTML Web页面,特别是基于MVC模式的应用程序。FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件。

    FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件配置文件源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

      FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL),属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据, 而在模板之外注意于要展示什么数据。

    freemarker本身与容器无关,无论是在普通java项目中,还是在WEB项目中都可以使用;如下就是一个在java项目中使用Freemarker的例子;在本例中需要先在项目目录下新建一个目录templates,然后在该目录下新建一个模板文件a.ftl。该文件可以加上Html头部等,也可不加。

hello,${name},你今天看起来不错哦!!
${user},你明天想干嘛?

     创建一个java类来读取模板文件,并给该文件提供数据(jar包是必须的);

package com.wanpeng.template;

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

import freemarker.template.Configuration;
import freemarker.template.Template;

public class FreeMkTest1 {
	public static void main(String[] args)throws Exception {
		//创建Freemarker的配置实例来加载模板文件
		Configuration cfg = new Configuration();
		//指定模板文件的路径
		cfg.setDirectoryForTemplateLoading(new File("templates"));
		
		//有java代码来生成模板中的数据
		Map<String,Object> map = new HashMap<String,Object>();
		map.put("name", "freemarker");
		map.put("user", "test");
		
		//加载模板文件
		Template t1 = cfg.getTemplate("a.ftl");
		
		//读取模板并输出到指定位置
		Writer out = new OutputStreamWriter(System.out);
		t1.process(map, out);
		out.flush();
		out.close();
	}
}

 

共有 人打赏支持
粉丝 2
博文 29
码字总数 19085
×
meshwon
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: