FreeMarker二:FreeMarker的jar包如何下载、如何引入到项目中;一个FreeMarker小例子(案例是Java工程,不是web工程);

FreeMarker基本使用;重要是使用Freemarker使用的三个步骤!

ftl文件,就是脚本啦!!! 

目录

一:如何下载安装FreeMarker:

二:如何引入freeMarker;FreeMarker Editor编辑器插件安装;

1.引入Freemarker:

2.FreeMarker Editor编辑器插件安装

三:FreeMarker实际编码小例子


一:如何下载安装FreeMarker:

访问:https://freemarker.apache.org/;FreeMarker是Apache提供的一个开源项目;

FreeMarker有两种安装方式:(1)第一种手动下载jar包;(2)另一种方式通过Maven;


二:如何引入freeMarker;FreeMarker Editor编辑器插件安装;

1.引入Freemarker:

2.FreeMarker Editor编辑器插件安装

推荐安装:FreeMarker IDE from JBoss Tools 1.5

至此,一切准备就绪;


三:FreeMarker实际编码小例子

FreeMarkerSample1类的内容:使用FreeMarker,结合模板进行输出;

(1)Freemarker的操作分三个步骤:加载模板;创建数据;产生输出

package com.imooc.freemarker;

import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.HashMap;
import java.util.Map;

import freemarker.core.ParseException;
import freemarker.template.Configuration;
import freemarker.template.MalformedTemplateNameException;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import freemarker.template.TemplateNotFoundException;

public class FreeMarkerSample1 {

	public static void main(String[] args) throws TemplateNotFoundException, MalformedTemplateNameException, ParseException, IOException, TemplateException {
		// TODO Auto-generated method stub
		// 1.加载模板
		// Configuration对象是FreeMarker的核心配置对象
		// 1.1创建核心配置对象
		Configuration config = new Configuration(Configuration.VERSION_2_3_31);// 因为我们下载的freemarker版本为2.3.31;所以这儿构造参数为2_3_31;
		// 1.2设置加载的目录;    这儿的意思:在FreeMarkerSample1这个类所在包中去加载指定的ftl文件;第二个参数传递一个空字符串代表是当前包;
		config.setClassForTemplateLoading(FreeMarkerSample1.class, "");
		// 1.3得到模板对象;;;; 以为1.2中设置了,只去扫描FreeMarkerSample1这个类所在包中的ftl,所以1.3这一步getTemplate()参数只需要指定ftl文件名字就可以了;
		Template t = config.getTemplate("sample1.ftl");
		// 2.创建数据 ;;;;;对于Freemaker来说,其数据就是一个Map类型的对象;
		// Map用来包含需要向模板中传入的数据
		Map<String,Object> dataMap = new HashMap<String,Object>();
		dataMap.put("site", "百度");
		dataMap.put("url", "http://www.baidu.com/");
		// 3.产生输出;;;这个输出,可以向文件输入,可以向控制台输出,可以向网络流中输出;向什么地方输出,取决于使用哪种类型的输出对象;
		t.process(dataMap, new OutputStreamWriter(System.out)); 
		// System.out:是向控制台输出的核心对象;System.out这个对象本质是一个PrintStream类型的对象,而process()方法的第二个参数需要是Writer类型的对象,所以使用new OutputStreamWriter(System.out),转换一下;
		
	}

}

然后,当sample1.ftl中编写如下内容时:

${site}-${url}

此时运行FreeMarkerSample1输出是:

百度-http://www.baidu.com/

……………………………………………………

然后,当sample1.ftl中编写如下内容时:

${site}~~~${url}

此时运行FreeMarkerSample1输出是:

百度~~~http://www.baidu.com/

通过上面的例子可以发现一点:后台部分只管编写代码,准备数据,而不用关心这些数据在前台怎么显示;

而ftl文件,就负责数据如何显示;

这似乎体现了数据和显示的分离;工作分离,“前后台”工作分离,自然项目整体效率可以提升!!!

So,what???待补充啦

需要其他例子,继续深化~~~

猜你喜欢

转载自blog.csdn.net/csucsgoat/article/details/114593074