-
Notifications
You must be signed in to change notification settings - Fork 11
03.04.01.Freemarker固有仕様
stormcat24 edited this page Aug 12, 2014
·
1 revision
Freemarkerの場合、プロジェクトルートに以下のtemplate.yamlファイルを配置する必要があります。
freemarker:
# aeromock original setting
extension: .ftl
autoEscape: false
# freemarker settings
autoFlush: false
objectWrapper: BEANS_WRAPPER
autoIncludes: []
booleanFormat: "true,false"
classicCompatible: false
#dateFormat:
dateTimeFormat: "yyyy-MM-dd HH:mm:ss"
defaultEncoding: "UTF-8"
localizedLookup: true
numberFormat: "###"
outputEncoding: "UTF-8"
strictBeanModels: false
strictSyntaxMode: true
tagSyntax: 0
# AUTO_DETECT_TAG_SYNTAX = 0
# ANGLE_BRACKET_TAG_SYNTAX = 1
# SQUARE_BRACKET_TAG_SYNTAX = 2
#templateUpdateDelay: 5000
# timeFormat: "HH:mm:ss"
urlEscapingCharset: "UTF-8"
whitespaceStripping: true
# BIGDECIMAL_ENGINE(default)|CONSERVATIVE_ENGINE
arithmeticEngine:
autoImports: []
項目名 | 内容 | デフォルト |
---|---|---|
extension | テンプレートの拡張子 | .ftl |
autoEscape | エスケープタグを自動挿入するかどうか | false |
objectWrapper | ObjectWrapperの実装。(BEANS_WRAPPER, STRUTS2_BEANS_WRAPPER, SIMPLE_WRAPPER, DEFAULT_WRAPPER) | DEFAULT_WRAPPER |
autoIncludes | TODO | TODO |
booleanFormat | TODO | TODO |
classicCompatible | TODO | TODO |
dateTimeFormat | TODO | TODO |
defaultEncoding | TODO | TODO |
localizedLookup | TODO | TODO |
numberFormat | TODO | TODO |
outputEncoding | TODO | TODO |
strictBeanModels | TODO | TODO |
strictSyntaxMode | TODO | TODO |
tagSyntax | TODO | TODO |
templateUpdateDelay | TODO | TODO |
timeFormat | TODO | TODO |
urlEscapingCharset | TODO | TODO |
whitespaceStripping | TODO | TODO |
arithmeticEngine | TODO | BIGDECIMAL_ENGINE |
autoImports | マクロ定義のMap | Empty list |
Freemarkerのビルトイン変数として、.now
という現在時刻を取得するビルトイン変数があります。Aeromockでは.now
が返す現在時刻をデータファイルで定義することができます。データファイルのトップレベルに、__now
というプロパティを定義
します。
prop1: propValue
__now: 2014-06-01T00:00:00+09:00
template.yamlのautoImports
に利用したいマクロを定義することが出来ます。
例として、Spring macroであれば、spring.ftlを任意の場所に配置します。template_root/common/spring.ftl
のように配置すれば、以下のようになります。
autoImports:
spring: common/spring.ftl
このマクロは、spring
という名前で定義したので、以下のように参照できます。
<ul>
<li>@spring.message = <@spring.message "site.title" /></li>
<li>@spring.message = <@spring.url "/aaa" /></li>
</ul>
マクロの中では、springMacroRequestContext
を定義しているため、データファイルにこのオブジェクトを作る必要があります。
springMacroRequestContext:
__methods:
- name: getMessage
value: hogehoge
- name: getContextUrl
value: http://${HOST}/aaa