2011-05-16 17 views
12

Veritabanından numara seçmenin yolu nedir? Ben:Enum tarafından Bahar MVC'de seçin

<select name="country"> 
    <c:forEach items="${countries}" var="value"> 
    <option value="${value}">${value}</option> 
    </c:forEach> 
</select> 

Ben sınıf ve tablo 'Kullanıcı' alanına dize/varchar 'ülke'

cevap

23

Kullanım bahar formları tld gelen option ve options etiketleri var.

Eğer doğru anlıyorsam, YourEnum.values() modelini "enumValues" olarak adlandırmanız gerekir (aşağıdaki yorumlara göre, bu gerekli değildir).

<form:select path="foo"> 
    <form:option value="-" label="--Please Select"/> 
    <form:options items="${enumValues}" /> 
</form:select> 

Referans:

+15

Komik şey - Ben, bu mesaj, kesme/sağladığınız kodu yapıştırdıktan bulundu, aynı soru vardı yolun adını değiştirdi ve işe yaradı. Ben asla "enumValues" 'i modelime sokmadım ve Spring'in enum değerlerini alabildiği tek yer, yol için "set" argümanını yansıtarak. Dışarı çıktı, tek ihtiyacınız olan "" girişi - "items" özelliği yok ve Spring sizin için enum isimlerini otomatik olarak alır. En iyi şey, bu davranışın bahar belgelerinde ANYWHERE olarak belgelenmemiş olmasıdır. 3.0.6 kullanıyorum, by by. – ogradyjd

+0

@ogradyjd bilmek güzel… –

+3

@ogradyjd: Bu bir müdahale özelliğidir. Ancak dokümanlar içinde değil, "options" etiketinin "items" özelliği için spring-form-tld belgesinde belirtilmiştir: "..." select "in data binding özelliği" Enum "olduğu sürece bu özellik gereklidir. enum'un değerleri kullanılır. " – Ralph