FreeMarkerの基本的な使用法。重要なことは、Freemarkerを使用する3つのステップを使用することです。
ftlファイルはスクリプトです!!!
目次
1つ:FreeMarkerをダウンロードしてインストールする方法:
2:freeMarkerの導入方法; FreeMarkerEditorエディタープラグインのインストール;
2. FreeMarkerEditorエディタープラグインのインストール
1つ:FreeMarkerをダウンロードしてインストールする方法:
訪問:https://freemarker.apache.org/ ; FreeMarkerのは、Apacheが提供するオープンソースプロジェクトです。
FreeMarkerをインストールする方法は2つあります。(1)jarパッケージを手動でダウンロードする最初の方法。(2)Mavenを使用する方法。
2:freeMarkerの導入方法; FreeMarkerEditorエディタープラグインのインストール;
1. Freemarkerを導入します:
2. FreeMarkerEditorエディタープラグインのインストール
推奨インストール:JBoss Tools1.5のFreeMarkerIDE
これまでのところ、すべての準備ができています。
3:FreeMarkerの実際のコーディングの小さな例
FreeMarkerSample1コンテンツ:出力用のテンプレートと組み合わせてFreeMarkerを使用します。
(1)Freemarkerの操作は、テンプレートのロード、データの作成、出力の生成の3つのステップに分かれています。
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/
上記の例から、1つのことがわかります。背景部分はコードを書き込んでデータを準備するだけで、データがフォアグラウンドでどのように表示されるかは気にしません。
ftlファイルは、データの表示方法を担当します。
これは、データと表示の分離を反映しているようです。作業の分離、「前面と背面」の作業の分離、当然、プロジェクトの全体的な効率を向上させることができます。!!
だから、何を追加するのですか?
他の例が必要です、深化を続けてください~~~