Tag del modulo Spring MVC: esiste un modo standard per aggiungere & # 8220; Nessuna selezione & # 8221; articolo?

StackOverflow https://stackoverflow.com/questions/162497

  •  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?

È stato utile?

Soluzione

Un'opzione:

<form:select path="country" title="country" >
     <form:option value="">&nbsp;</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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top