| 開発者 | ジョナサン・レヴァスキー、アッティラ・セゲディ、ダニエル・デカニー 他 |
|---|---|
| 初回リリース | 2000 |
| 安定リリース | 2.3.33 / 2024年6月1日 |
| リポジトリ | github.com/apache/freemarker |
| 書かれた | ジャワ |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | テンプレートエンジン |
| ライセンス | Apache ライセンス 2.0 |
| Webサイト | フリーマーカー |
Apache FreeMarkerはJavaベースの無料 テンプレートエンジンで、もともとMVCソフトウェアアーキテクチャによる動的なWebページ生成に重点を置いていました。現在ではテンプレートと変化するデータに基づいてテキストを生成できます。[1]サーブレットやHTTP、HTMLに依存しません。[2]
ソース コード、構成ファイル、電子メールの生成によく使用されます。
歴史
FreeMarker は、2004 年頃まで、パラダイム シフトやその他の重要な変更が何度も発生したため、やや慌ただしい歴史を歩んできました。FreeMarker 1 (現在は別のプロジェクトである FreeMarker Classic として知られています) は、もともと Benjamin Geer と Mike Bayer によって作成されました。2002 年からは、新しいプロジェクト リーダーである Jonathan Revusky が FreeMarker 2 をリリースし、一連の大幅な変更を開始しました。変更の主な目的は、テンプレート言語をより厳密にすること、つまり、タイプミスやその他の一般的な間違いをできるだけ多く検出することでした。また、テンプレート言語の型システムが徐々に進化するとともに、自動オブジェクト ラッピングが導入されました。この言語は、より強力なマクロ プログラミング機能や名前空間など、多くのパワー ユーザー機能を獲得しました。この言語は、2004 年第 3 四半期にリリースされたバージョン 2.3 で、かなり安定した状態に達しました。2022 年現在、この製品は下位互換性を維持しています。今後、FreeMarker 2 シリーズで下位互換性のない重大な変更が行われる予定はありません。
2015 年後半、FreeMarker はApache Software Foundationに助成され、Apache Incubator に入り、2018 年 3 月 21 日に完全に承認された Apache プロジェクトになりました。
例
次のテンプレート:
< html >
< body >
< p >こんにちは ${name}! 次のメッセージがあります:
< #list messages as m>
< p >< b > ${m.from}: </ b > ${m.body} </ p >
< /#list>
</ p >
</ body >
</ html >
FreeMarker で処理すると、次のような結果が生成されます。
< html >
< body >
< p >こんにちは、ジョー!次のメッセージがあります。
< p >< b >ティム:</ b >会議の論文を忘れずにお持ちください!</ p >
< p >< b >シンディ:</ b >今日の午後、私を訪ねてきてもらえますか?</ p >
< p >< b >リチャード:</ b >今回は論文を忘れないでください!</ p >
</ p >
</ body >
</ html >
「name」や「messages」などの変数はテンプレートの外部から取得されるため、テンプレートの作成者は表示の問題のみを処理する必要があります。これらの変数がデータベースから取得されるか、Cookie から取得されるか、または他の方法で計算されるかに関係なく、テンプレートは同じままです。また、値の正確な Java API (およびクラス) は、オブジェクト ラッピングと呼ばれる手法を使用して FreeMarker で非表示にできます。たとえば、「messages」は、 「from」および「body」プロパティを持つJavaBeansのリストまたは配列のように見えますが、まったく異なるものである可能性があり、テンプレートは影響を受けません (適切なオブジェクト ラッパーが使用されている限り)。
参照
参考文献
外部リンク
- 公式サイト
