2012-05-23 1 views
8

テンプレート内のリストの1番目と2番目の要素にアクセスする必要があります。FTLテンプレートのインデックスによる要素へのアクセス

私のJavaコード:

myMap.put("key", Arrays.asList("val1", "val2"); 

マイFTLテンプレート:

<#list myMap?keys as key> 
${myMap[key][0]}, ${myMap[key][1]} 

< - 上記の行がMYMAPに未定義の式で失敗し、[キー] [0]。私はチェックし、myMap [key]はSimpleSequenceです。また、$ {myMap [key]?first}を試しましたが、同じエラーで失敗しました。何か案は?

+0

私はちょうど似たようなことをして、まず割り当てをしました。 <#assign x = myMap [key]>と同じように、私の目的のために働いていました。 – geekonablog

答えて

4

[0][1]はこれで問題ありませんが、シーケンスに0個の要素があるか、またはその要素がnullであるように見えます。 ${myMap[key]?size}は何を印刷しますか?ところで、商品が存在しない場合でも値を取得する場合は、nullと入力してと書くことができます。

+0

問題はヌル要素でした。デフォルトの構文がトリックでした! – shameed

2

あなたの問題は、キーを使って 'myMap'オブジェクトにリストを入れて、キー: "キー"でそれを試してみることです。

あなたはそれを修正するために、未定義の表現を取得した理由はここにある:

<#list myMap?key as k> 
${myMap[k][0]}, ${myMap[k][1]} 

またはコースのあなたが

myMap.put("keys", Arrays.asList("val1", "val2"); 

にJavaコードを変更しているようFTLコードを使用することができます。

関連する問題