Tag del modulo Spring MVC: esiste un modo standard per aggiungere & # 8220; Nessuna selezione & # 8221; articolo?
-
03-07-2019 - |
Domanda
Esiste un menu a discesa selezionato e desidero aggiungere " Nessuna selezione " elemento nell'elenco che mi dovrebbe dare 'null' quando inviato. Sto usando il controller derivato SimpleFormController.
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;
}
E la parte jspx è
<form:select path="country" items="${countryList}" title="country"/>
Una possibile soluzione sembra essere l'aggiunta di un valore null all'inizio dell'elenco e quindi l'utilizzo di un PropertyEditor personalizzato per disporre questo 'null' come 'Nessuna selezione'. C'è una soluzione migliore?
@Edit: ho risolto questo problema con un'annotazione di convalida personalizzata che controlla se il valore selezionato è "Nessuna selezione". Esiste una soluzione più standard e più semplice?
Soluzione
Un'opzione:
<form:select path="country" title="country" >
<form:option value=""> </form:option>
<form:options items="${countryList}" />
</form:select>
Altri suggerimenti
Non credo che dovresti aver bisogno di un editor di proprietà per questo. Se il "vuoto" L'opzione è prima nell'elenco e il tag che genera l'elenco non contrassegna nessuno di essi come selezionato, quindi il browser dovrebbe selezionare il primo, "vuoto". uno automaticamente.
Quando invii il modulo, prova a farlo funzionare in modo che il "vuoto" " Il valore è associato al comando come null, il che potrebbe accadere automaticamente, a seconda del tipo.