Sto usando l'editor di Spring CustomNumberEditor per legare i miei valori float e ho sperimentato che se nel valore non è un numero a volte può analizzare il valore e non viene restituito alcun errore.Spring CustomNumberEditor analizza numeri che non sono numeri
- numero = 10 ...... allora il numero è 10 e non c'è nessun errore
- numero = 10a ...... allora il numero è 10 e non c'è nessun errore
- numero = 10a25 ...... allora il numero è 10 e non c'è nessun errore
- numero = un ...... errore perché il numero non è valido
così sembra che l'editor analizza il valore fino a quando non può e omettere il resto. C'è un modo per configurare questo editor in modo che la validazione sia rigorosa (quindi i numeri come 10a o 10a25 causano errori) o devo costruire la mia implementazione personalizzata. Sto guardando qualcosa come impostare lentissimo su false in CustomDateEditor/DateFormat in modo che le date non possano essere analizzate alla più probabile.
Il modo in cui mi registro l'editor è:
@InitBinder
public void initBinder(WebDataBinder binder){
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setGroupingUsed(false);
binder.registerCustomEditor(Float.class, new CustomNumberEditor(Float.class, numberFormat, true));
}
Grazie.
Grazie. Ma se ho fatto la mia implementazione personalizzata penso di poter estendere la classe CustomNumberEditor e sovrascrivere il metodo setAsText controllando se il valore è un numero come fai tu e se sta succedendo con super.setAsText – Javi