2012-02-09 12 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

感謝:) あなたの答えは、これは私があまりにも必要な正確に何である –

+0

を助けました! :D – wjhplano

7

は春form:selectform:optionsドキュメントを参照してください。必要に応じてitems,itemValue、およびitemLabelを使用してください。

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

私はマップを使うとき、 'itemValue'と' itemLabel'は必要ではないと思います。 –

+0

これは、オブジェクトのリストを使用したいと思って、不要なマップを作成したくない場合に、完全に使用されています。 – Saif

関連する問題