freemarkerの設定
設定は3つのレイヤで可能
上位からEnvironment,Template,Configurationです。それぞれ、Configurableクラスを継承しています。
http://freemarker.sourceforge.net/docs/pgui_config_settings.html
より上位のレイヤの設定内容が有効となります。例えばEnvironmentとConfigurationで同じパラメータに対し異なる値が設定されていてもEnvironmentの設定が有効となります。
- Configurationは主に設定ファイルによって値がセットされます。もちろん直接設定してもOKです。
- Templateに設定をすることは基本的にやらない
- Environmentにおける設定はテンプレートファイル内において下記のように行う。
<#setting locale="it_IT"> <#setting number_format="0.####">
設定項目
3つのレイヤに共通の設定とConfigurationだけの設定があります。
http://freemarker.org/docs/api/constant-values.html
freemarker.core.Configurableが共通、freemarker.template.Configurationが専用。
いかにいくつか例を挙げます
date_format
日付のフォーマットを指定。
例えば
date_format = YYYY/MM/dd
datetime_formatも同様
number_format
数値を表示する際のデフォルトのフォーマットを決める。
例えば
number_format = #
としていると${123456.78}は「123457」と表示され
number_format=000,000,000.000
とすると「000,123,456.780」と表示され
number_format=,###.###
とすると「123,456.78」と表示される。
これらのdate_formatやnumber_formatはデフォルトの振る舞いであって、${dateValue?string("MM/dd")}や${numValue?string(",###")}みたいにすれば個別に指定可能です。
whitespace_stripping
trueに設定すると余分な空白を取り除いてくれます。
全ての空白というわけではないです。詳細未確認。
auto_include
それぞれのテンプレートファイルで宣言しなくても毎回includeしてくれます。
auto_include=/path/to/include.ftl, /path/to/include2.ftl
anto_importも同様です。
auto_import=/path/to/import.ftl as i, /path/to/import2.ftl as i2