2011-11-26 50 views
1

我有我使用這樣其一個applet標籤:發揮框架標籤:的foreach傳遞的參數

#{applet steps: 250, "world": "tutorials/level1.world", "req_onetime": "red_ant,5,8&red_ant,6,6&red_ant,5,4&red_ant,3,4&red_ant,2,6&red_ant,3,8"} 

和applet.html文件距HTML等:

<applet ...> 
#{if _steps}<param name="steps" value="${_steps}">#{/if} 
.... 
</applet> 

燦我有類似的東西:

foreach passed param write '<param name=$1 value=$2>' 

我知道這不是那麼重要,因爲服務器/ applet API應該明確定義anywa Ÿ...但由於有10-20個參數我必須通過,短foreach將更容易閱讀無論如何:-)

這是可能的沒有寫一個有點複雜的FastTag?

謝謝, 亞歷克斯

回答

0

我認爲他們是沒有辦法來遍歷傳遞的參數(至少是沒有記錄的方式),但你可以使用地圖或列表。

Java: 
Map<String, String> map = new HashedMap<String, String>; 

Template: 
#{list items:map.keySet(), as:'key' } 
    <param name="${key}" value="${map.get(key)}"> 
#{/list} 

我認爲按鍵集放棄了您放置您的值的順序,所以如果您需要保持您的訂單列表。

Java: 
List<NameValuePair> pairList = new ArrayList<NameValuePair>; 
pairList.add(new NameValuePair("steps", "250"); 

Template: 
#{list items:pairList, as:'pair' } 
    <param name="${pair.name}" value="${pair.value}"> 
#{/list}