Ho un oggetto.convalida annotazione mvc molla intero
public class MyObject
{
....
@Column(name = "a_number") @NotNull @NumberFormat(style = Style.NUMBER) @Min(1)
private Integer aNumber;
...
//getters and setters
}
Nel mio controller ho annotazione @Valid sul mio oggetto che viene pubblicato. Ho una validazione che funziona su tutti i miei altri campi della classe (le loro stringhe tutte) tranne questo numero. Se inserisco un numero dal mio modulo funziona perfettamente e se violento il @Min (1) mi dà anche l'errore di validazione corretto. Il mio problema tuttavia è che se inserisci una stringa invece di un numero, genera una NumberFormatException.
Ho visto molti esempi di numero intero e di convalida, ma nessuno conta se inserisci una stringa nel modulo che viene pubblicato. Devo fare la validazione altrove dove? Javascript? Vorrei una soluzione che fosse in linea con il resto della validazione della primavera, quindi potrei usarla in altre classi. Vorrei solo un errore affermando che deve essere numerico. Inoltre ho provato a usare l'annotazione @Pattern ma a quanto pare è solo per le stringhe.
Suggerimenti?
Vedere http://stackoverflow.com/questions/4082924/jsr-303-type-checking-before-binding – axtavt
Grazie !! Ha funzionato bene! Il tuo post non è mai apparso nelle mie ricerche. – sauce