2012-05-23 76 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}打印什麼?順便說一句,如果你想要得到一個值,即使該項不存在,你也可以編寫${myMap[key][0]!'some default'}null

+0

問題是一個空元素,默認的語法有竅門! – shameed

2

你的問題是,你把列表放到你的'myMap'對象中,鍵值爲「key」,然後試着用鍵值「keys」訪問它。

這就是爲什麼你得到一個不確定的表情,糾正:

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

或你當然可以改變你的Java代碼來

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

,並使用FTL代碼不變。

相關問題