2016-04-09 22 views
0

ありがとうございます。Freemarkerローカライズされた文字列を動的に呼び出す

データベースからのステータスコードはほとんどありません。私は以下のように文字列を翻訳しようとしています、FTLから

VA_PRODCODE_200=Valid Product 
VA_PRODCODE_205=Limited Edition Product 

- など私の言語ファイルで

例200、205は、私のような文字列を持っています。

productstatus.productStatusCodeがデータベースから来て、200のような値を持って、205

しかし、結果はいつものように来ているされて

${"VA_PRODCODE_" + productstatus.productStatusCode} 

VA_PRODCODE_200 
VA_PRODCODE_205 

誰がどのようにこの変換を行うことを教えてもらえます。

${.data['VA_PRODCODE_' + productstatus.productStatusCode?c]} 

?cが千の区切りを追加するようなことを行うことができ、書式設定ローカライズされた番号を防ぐことがあります:変数と仮定すると

おかげ DIBS

+0

依存...キーが動的でない場合、どのように言語ファイルから項目を印刷しますか? – ddekany

+0

キー値のペアを使用してftlに値を渡します。 ftlでは$ {PRINT_THIS}を使って印刷します これは言語ファイルから適切な値を出力します。 –

答えて

0

はこのように、データ・モデルです。 (.varsを使用することもできますが、これはローカル変数とデータモデル変数の両方で機能します)

+0

それは大きな助けとなりました。このコードは働いた - '$ {.vars ['VA_PRODCODE_ + productstatus.productStatusCode]}' 値は文字列であり整数ではないので '?c'を使用できませんでした。 –

関連する問題