2008-10-02 35 views
30

Seçme açılan bir liste var ve listeye "Seçim yok" öğesini eklemek istiyorum. SimpleFormController türetilmiş denetleyici kullanıyorum.Spring MVC Form etiketleri: "Seçim yok" öğesini eklemek için standart bir yol var mı?

protected Map referenceData(HttpServletRequest httpServletRequest, Object o, Errors errors) throws Exception { 
    Map<String, Object> map = new HashMap<String, Object>(); 

    map.put("countryList", Arrays.asList(Country.values())); 

    return map; 
} 

Ve jspx kısmı

<form:select path="country" items="${countryList}" title="country"/> 

Olası bir çözüm 'olarak 'sıfır' disply özel PropertyEditor kullanılarak ardından listenin başına bir boş değer ekleme ve gibi görünüyor olduğunu Seçim yok '. Daha iyi bir çözüm var mı?

@Edit: Bunu, seçilen değerin "Seçim Yok" olup olmadığını kontrol eden bir özel doğrulama açıklamasıyla çözdüm. Daha standart ve daha kolay bir çözüm var mı?

cevap

36

Seçeneklerden biri: Ben bunun için bir özellik editörü gerektiğinde sanmıyorum

<form:select path="country" title="country" > 
    <form:option value="">&nbsp;</form:option> 
    <form:options items="${countryList}" /> 
</form:select> 
+0

jspx sayfalarında adı verilen varlık ' ' kullanarak dikkat edin (yakın zamanda, varlığın tanımlanmadığını veya bazılarının böyle olmadığını belirterek, hatalara neden olur). Kodla, kırılmayan alana başvurmak daha güvenli görünüyor: ' ' – Michael

+1

Bu sayede NoSelection boş bir dize yayınlayacak, ancak 'null' değil. değer = $ {null} boş postalamalıdır. – javabot

0

. Listede "boş" seçeneği birinci ise ve listeden çıkan etiket seçili olarak işaretlenmemişse, tarayıcı otomatik olarak ilk "boş" olanı seçmelidir.

Formu gönderdiğinizde, "boş" değerinin, komutunuza bir boş değer olarak bağlanmasını sağlayın, böylece türüne bağlı olarak otomatik olarak gerçekleşebilir.