2013-03-06 24 views

Antwort

11

@Required ist eine benutzerdefinierte JSR-303 Annotation, die im Play-Framework erstellt wurde. JSR-303 ist eine Spezifikation für die Validierung von Javabeans, mit der sichergestellt werden kann, dass die Werte einer bestimmten Java-Bean in einen Satz von Constraints fallen. Beispiele einiger Standardvalidierungs Anmerkungen:

  • @Max - Das annotierte Element eine Zahl, deren Wert sein muss, muss auf die angegebene maximale niedriger oder gleich sein.
  • @Min - Das mit Anmerkungen versehene Element muss eine Zahl sein, deren Wert größer oder gleich dem angegebenen Minimum sein muss.
  • @NotNull - Das mit Anmerkungen versehene Element darf nicht null sein.

Jede JSR-303 Anmerkung Gruppen, wobei jede Gruppe ist wirklich nur eine Klasse zu definieren, ist erlaubt. Diese Gruppen können verwendet werden, um eine Teilmenge von Validierungen für eine gegebene Bean auszuführen. In Ihrem speziellen Beispiel haben die Implementierer zwei Schnittstellen definiert, um diese Gruppen zu repräsentieren - All und Step1. Dann fügen sie die Gruppen den Validierungsannotationen hinzu, um anzuzeigen, dass diese Validierungen zu der Gruppe gehören. Also für die unter Klasse:

public class MyBean { 
    @Required(groups = {All.class, Step1.class}) 
    @MinLength(value = 4, groups = {All.class}) 
    public String username; 
} 

MyBean bean = new MyBean(); 
ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); 
Validator validator = factory.getValidator(); 

Im Folgenden wird die @Required und @MinLength Validierung für das username Feld ausführen:

validator.validate(bean, All.class); 

Während der folgenden nur die @Required Validierung ausgeführt wird (für das username Feld):

validator.validate(bean, Step1.class); 
+0

Danke, das war sehr hilfreich. – vinos