2012-02-09 51 views
7

有沒有辦法將地圖內的數據映射到標記? 我在我的代碼中有一個地圖Map<String, Integer>。 有沒有辦法將選項標籤映射到地圖上的String,將Integer映射到選項值?使用<form:select>標記地圖

回答

20

<form:options>標籤使用items屬性支持開箱即用。你可以這樣做:

LinkedHashMap<Integer, String> states = new LinkedHashMap<Integer, String>(); 
states.put(1, "Alabama"); 
states.put(2, "Alaska"); 
states.put(3, "Arizona"); 
states.put(4, "Arkansas"); 
states.put(5, "California"); 

依此類推。然後在您的形式:

<form:select path="state"> 
    <form:options items="${states}" /> 
</form:select> 

要呈現的東西,如:

<select name="state"> 
    <option value="1">Alabama</option> 
    <option value="2">Alaska</option> 
    <option value="3">Arizona</option> 
    <option value="4">Arkansas</option> 
    <option value="5">California</option> 
</select> 
+0

謝謝:) 你的答案幫助 – 2013-03-24 13:07:45

+0

這正是我需要的呢! :D – wjhplano 2013-11-05 16:58:43

7

見春form:selectform:options文檔。根據需要使用items,itemValueitemLabel

<form:select path="myFormVariable"> 
    <form:option value="0" label="Select One" /> 
    <form:options items="${myCollection}" itemValue="propertyToUseAsValue" itemLabel="propertyToUseAsDisplay" /> 
</form:select> 
+4

我相信在使用Map時,'itemValue'和'itemLabel'不是必需的。 – 2012-02-09 20:23:01

+0

這是使用完整的,當我想使用對象的列表,並希望避免創建不必要的地圖。 – Saif 2015-07-11 18:15:02