私はIntegersをキーにして多数のハッシュテーブルを持っていますが、私はFreemarkerテンプレートで繰り返し処理できるようにしたいと考えています。Freemarker Hashtable <Integer、String>、キーで反復する
私はFreemarker iterating over hashmap keysから例を試してみました:
<#list user.props() as prop>
${prop} = ${user.get(prop)}
</#list>
それはおそらくキーとして文字列を使用していますが、それは整数としませんでした。私はまた、具体的な値で私のハッシュテーブルから値を取得することもできません。私が持っているものは:
Hashtalbe ht = new Hashtable();
ht.put(1, "hello");
datamodel.put("devices", ht);
(テンプレートに渡されたハッシュマップです)です。テンプレートで
私は、次の手順を実行します。
は
<#if devices??>
<#list devices?keys as prop>
<p>${prop}</p>
<p>${devices.get(1)}</p>
OR
<p>${devices.get(key)}</p>
OR
<p>${devices[key]}</p>
OR
<p>${devices[1]}</p>
</#list>
<#else>
<p> no devices</p>
</#if>
しかし、それのどれも機能しません。私を助けてくれますか?
PS。私はハッシュテーブルをからテンプレートに渡すように変換しましたが、これは少しの回避策のようです。
敬具、私の足跡をたどることがあなたの人々のための Timofey
実際問題は、FreeMarkerはString型のキーでハッシュしか処理できないということです。 – idrosid
これにはもっと良い解決策があります( '?api'を使います)。 [このFAQのエントリ](http://freemarker.org/docs/app_faq.html#faq_nonstring_keys)を参照してください。 – ddekany