1

freemarkerの式の組み込み部分をパラメーター化できますか?もしそうなら、どのように?

たとえば、日付は次のビルトインでフォーマットできます。

${openingTime?string.short}
${openingTime?string.medium}
${openingTime?string.long}
${openingTime?string.full}

string.short / string.medium / ...組み込み名もパラメーター化できますか?

たとえば、次のようなことをしたいと思います。

${openingTime?${mydatefmt}}

ここで、mydatefmtは「string.short」または任意の有効な形式です。

これにより、フリーマーカーページの日付形式を簡単に変更できるようになります。

変更をページ/ファイルに制限し、グローバルに適用したくない。

このようなものをFreemarkerマクロに入れる必要がありますか?これは、必要になる可能性のあるすべての可能なタイプの日付形式を予測する可能性がありますか?

4

2 に答える 2

2

1 つのアプローチは を使用openingTime?string(pattern)することです。パターンは、文字列に評価される任意の種類の式にすることができます。しかし、パターンは何度も再解析されるため、非常に冗長でやや遅いです。

もう 1 つの方法はdate_formattime_formatdatetime_formatFreeMarker を設定してから、単に${openingTime}. (実際には、 が のサブクラスでopeningTimeない場合は、 を記述する必要があります。これは、Java API が日時、時刻、および日付のみの違いを認識していないためですが、これは別の話です。) FreeMarker の設定はグローバルに設定できます ( -レベルで)、テンプレートレベルで (ただし、通常はそうしません)、または. http://freemarker.org/docs/pgui_config_settings.htmlを参照してください。最後は のように FTL で行うこともできます。javax.sqljava.util.Date${openingTime?datetime}ConfigurationEnvironment<#setting datetime_format = 'yyyy-MM-dd HH:mm:ss zzzz'>

于 2013-01-12T13:26:59.287 に答える
1

書式設定パターンを明示的に指定する必要があります:${openingTime?string("yyyy-MM-dd HH:mm:ss zzzz")}

日付形式は、 : などの式にすることができます${openingTime?string(mydatefmt)}

于 2013-01-12T08:05:23.273 に答える