2012-12-30 34 views
2

以下JSTL代碼表明奇怪的現象:春季形式選擇對矯正列表項

${property.bedrooms[0]} 

<sf:select path="bedrooms[0]" multiple="multiple" items="${property.bedrooms[0].beds}" /> 

${property.bedrooms[0]} 

輸出是:

Bedroom{id=4, beds=[KING, QUEEN], enSuite=false} 

+-------------+ 
| KING  | 
+-------------+ 

Bedroom{id=4, beds=[KING], enSuite=false} 

Bedroom.toString()包含:

@Override 
public String toString() 
{ 
    return "Bedroom{" + "id=" + id + ", beds=" + beds + ", enSuite=" + enSuite + '}'; 
} 

property.bedrooms [0] .beds是一個列表<Enum>,似乎訪問它的項目屬性切割除了第一個元素都!任何想法可能會造成這種情況?

乾杯! NFV

+0

爲什麼臥室實例的第二個渲染不同? – Kyle

+0

這就是我不明白,它的牀單不應該由sf修改:選擇,但它似乎是? – nfvindaloo

+0

臥室課上的toString方法是什麼樣的?它是否稱爲刪除? – Kyle

回答

1

嘗試:

<sf:form modelAttribute="property"> 
    <sf:select path="bedrooms[0].beds" multiple="true"> 
     <sf:options /> 
    </sf:select> 
</sf:form> 

根據彈簧形式(3.0.x的)TLD文件和源代碼的Java文檔: ​​

如果上的選擇結合的值是一個枚舉spring將自動使用該類的所有枚舉值的列表。

options標籤的itemLabel和itemValue屬性可能用於顯示更加用戶友好的標籤。

<sf:options itemLabel="friendlyName" /> 
+0

我會試試... – nfvindaloo

+0

完美的工作,現在有意義我想到了,謝謝! – nfvindaloo