2012-09-18 42 views
1

我對Spring標籤不是很熟悉,似乎在我遇到了一些我目前無法理解的問題。彈簧選擇標籤生成隱藏字段

我也顯示在我的JSP兩個選擇標記,它們是由一個ArrayList的支持和地圖這裏是代碼他們

<form:select path="prsBTOData[${status.index}].colors" items="${prsBTOData.colors}" 
cssClass="productDetailsSelect"/> 

<form:select path="prsBTOData[${status.index}].fonts" items="${prsBTOData.fonts}" 
cssClass="productDetailsSelect" > 

的顏色是由數組列表支持而字體是由Map.Bow支持的是生成的HTML

<select multiple="multiple" class="productDetailsSelect" name="prsBTOData[0].colors" 
    id="prsBTOData0.colors"> 
    <option selected="selected" value="Red">Red</option> 
    <option selected="selected" value="Green">Green</option> 
    <option selected="selected" value="Black">Black</option> 
</select> 
<input type="hidden" value="1" name="_prsBTOData[0].colors"> 

我是n不知道爲什麼它做multiple="multiple",並沒有顯示任何下拉菜單,但只顯示RED作爲選定的值,而我期待與下拉選項的列表。 甚至不知道爲什麼這個隱藏的領域正在產生,它的目的是什麼?

回答

0

form:selectitems屬性是需要在選擇框中顯示的項目列表。而path屬性是與選定值綁定的屬性。

由於您已經給出了一個arraylist(具有多個值)作爲路徑,因此spring會假定您希望選擇一個多值下拉菜單。

你可能想給這樣的(假設你有color屬性prsBTOData

<form:select path="prsBTOData.color" items="${prsBTOData.colors}"/> 

,並考慮使用不同的模型對象保持靜態/參考數據(顏色,字體),如下:

<form:select path="prsBTOData.color" items="${referenceData.colors}"/>