2013-06-27 18 views
6

ho la seguente proprietà nel mio fagioli Modulo Spring MVC utilizzando il javax.validation.constraints per convalidare il fagiolo modulo come segue:La seguente validazione significa che il campo non può essere nullo? (@Size annotazione)

public class MyForm { 
    @Size(min = 2, max = 50) 
    private String postcode; 

    // getter and setter for postcode. 
} 

La mia domanda è: L'@Size(min = 2) significa che la proprietà non può essere null in quanto richiederà sempre una lunghezza maggiore di 2. La ragione per cui dico che c'è un vincolo @NotNull nello stesso pacchetto e pertanto rende il ridondante @NotNull ridondante se dovessi usarlo nel bean precedente.

+1

"Null sono considerati validi", dice in http://docs.oracle.com/javaee/6/api /javax/validation/constraints/DecimalMax.html –

risposta

7

Se si guarda la documentazione dell'annotazione Dimensioni (http://docs.oracle.com/javaee/6/api/javax/validation/constraints/Size.html)

si può leggere " elementi null sono considerati validi."
Pertanto è necessario specificare @NotNull sulla parte superiore della il tuo campo
Avete due alternative:

@NotNull 
@Size(min = 2, max = 50) 
private Integer age; 

O come Riccardo F. suggerito:

@NotNull @Min(13) @Max(110) 
private Integer age; 
1

@NotNull viene utilizzato per i campi di testo troppo ma è possibile utilizzare insieme come

@NotNull @Min(13) @Max(110) 
private Integer age; 

Ciò significa età non può essere nullo e deve essere un valore compreso tra 13 e 100 e

@NotNull 
private Gender gender; 

significa che la genere non può essere nullo

0

Secondo la documentazione per @Size

null elementi sono considerati validi.

Per riferimento hibernate-convalida effettivi @Size implementazioni sono in:

org.hibernate.validator.constraints.impl.SizeValidator

Quindi specificare @NotNull comunque.

Problemi correlati