1.全体構造
FreeMarkerはFTL(FreeMarker Template Language)という言語で記載する。
といっても、シンプルなのでそこまで覚えることはない。
FTLは以下の4つの構文で構成される。
- テキスト
- 静的なコンテンツ。プレーンテキストでもHTMLでもXMLでも何でもいい。
- 埋め込み変数
- Javaオブジェクトの変数を埋め込む箇所。 ${ と } で囲った部分が出力時にオブジェクトの内容で置換される。
- FTLタグ
- 制御構造やマクロ構文を埋め込む箇所。
- 通常はタグ形式で記載する。
- FTLタグのネストはできない(NG: <#if <#include 'foo'>='bar'>...</#if>)
- FTLの先頭に[#FTL]と記載することで、山かっこ(<>)の代わりに角かっこ([])を使用することもできる。
- コメント
- FTL内でコメントしたい場合は<#-- と --> で囲う。
- コメント内容は出力時には表示されない。
- コメントは埋め込み変数・FTLタグの中に含めることもできる。
以下にサンプルコードを表示する(本家からのコピペ)
テキスト、埋め込み変数、FTLタグ、コメントで色づけしている。
<html>[BR]
<head>[BR]
<title>Welcome!</title>[BR]
</head>[BR]
<body>[BR]
<#-- Greet the user with his/her name -->[BR]
<h1>Welcome ${user}!</h1>[BR]
<p>We have these animals:[BR]
<ul>[BR]
<#list animals as being>[BR]
<li>${being.name} for ${being.price} Euros[BR]
</#list>[BR]
</ul>[BR]
</body>[BR]
</html>
変数名・タグ名は大文字・小文字を区別するので注意。
2.構文へ