Eingebaute Einschränkungen bei der Bean-Validierung
@Null Das kommentierte Element muss null sein
@Notnull Das kommentierte Element darf nicht null sein
@AssertRue Das kommentierte Element muss wahr sein
@AssertFalse Das kommentierte Element muss falsch sein
@Min (Wert) Das kommentierte Element muss eine Zahl sein, und sein Wert muss größer oder gleich dem angegebenen Mindestwert sein.
@Max (Wert) Das kommentierte Element muss eine Zahl sein, und sein Wert muss geringer oder gleich dem angegebenen Maximalwert sein.
@Decimalmin (Wert) Das kommentierte Element muss eine Zahl sein und sein Wert muss größer oder gleich dem angegebenen Mindestwert sein
@Decimalmax (Wert) Das kommentierte Element muss eine Zahl sein, und sein Wert muss geringer oder gleich dem angegebenen Maximalwert sein
@Size (max =, min =) Die Größe des kommentierten Elements muss innerhalb des angegebenen Bereichs liegen.
@Digits (Ganzzahl, Fraktion) Das kommentierte Element muss eine Zahl sein und sein Wert muss in einem akzeptablen Bereich liegen.
@Paste Das kommentierte Element muss ein früheres Datum sein
@Future Das kommentierte Element muss ein zukünftiges Datum sein
@Pattern (Regex =, Flag =) Das kommentierte Element muss dem angegebenen regulären Ausdruck entsprechen
Hibernate Validator beigefügte Einschränkung
@Notblank (message =) überprüfen Sie, ob die Zeichenfolge nicht null ist und größer als 0 sein muss
@Email Das kommentierte Element muss eine E -Mail -Adresse sein
@Length (min =, max =) Die Größe der kommentierten Zeichenfolge muss im angegebenen Bereich liegen.
@NotEmpty Die kommentierte Zeichenfolge muss nicht leer sein
@Range (min =, max =, message =) Das kommentierte Element muss sich innerhalb des entsprechenden Bereichs befinden
Effekte und Vorteile
Lassen Sie uns zuerst den endgültigen Effekt sehen:
public class userEntity {@password private Zeichenfolge Passwort; @Email private Zeichenfolge E -Mail;}In der obigen Verwendung werden zwei benutzerdefinierte Anmerkungen verwendet, um das Passwort und die E -Mail zu überprüfen. Der Vorteil davon ist: Eine Definition wird überall verwendet. Wenn Sie die Überprüfungsregeln ändern, müssen Sie nur die Anmerkungen ändern. Wenn Sie es anpassen, verwenden Sie das von Hibernate bereitgestellte Tag:
@Pattern (regexp = "...") private Zeichenfolge -E -Mail;
Wenn Sie plötzlich die Verifizierungsregel Regexp nach dem Schreiben vieler Klassen ändern müssen, wird die Workload zu diesem Zeitpunkt viel größer.
erreichen
Stellen Sie zunächst die Abhängigkeit der Hibernate -Validierung ein und fügen Sie hinzu:
<!-Hibernate Validator-> <!-Hibernate-Verifizierungs-Framework-> <Depopentcy> <gruppe> org.hibernate </Groupid> <artifactid> hibernate-validator </artifactid> <version> 5.2.2.
Die Hibernate -Validierung ist eine Referenzimplementierung von JSR. Verwenden Sie sie daher für die Bean -Überprüfung.
Das Anpassen einer Überprüfungsannotation ist in drei Schritte unterteilt:
Der erste Schritt besteht darin, Anmerkungen zu erstellen:
@Target ({Methode, Feld, Annotation_Type, Konstruktor, Parameter})@RETORTION (Laufzeit)@documented@Constraint (validatatedBy = {EmailValidator.class}) public @Interface E -Mail {String -Message () Standard "Dies ist kein gültiges E -Mail -Format"; /** * @return Der reguläre Ausdruck, der übereinstimmt */String regexp () Standard "[a-za-z0-9 ._%+-]+ @[a-za-z0-9]+//. [a-za-z] {2,4}"; Klasse <?> [] Gruppen () Standard {}; Klasse <? erweitert Payload> [] payload () Standard {}; /*** Definiert mehrere {@link -Größe} Anmerkungen im selben Element. * * @see size */ @target ({Methode, Feld, Annotation_Type, Konstruktor, Parameter}) @Retention (Laufzeit) @Documented @Interface List {E -Mail [] value (); }} Erstellen Sie Annotationen über das Schlüsselwort @Interface, und jede Methode ist ein Parameter der Annotation. Beispielsweise können Sie im obigen Code @Email(regexp="...",message="...") wie dieses verwenden. Sie können den Rest ignorieren, kopieren Sie ihn einfach direkt. Es ist zu beachten, dass @Constraint(validatedBy = { EmailValidator.class }) hier die Überprüfungsklasse der Annotation angibt und den Klassennamen gemäß der tatsächlichen Situation ersetzt.
Der zweite Schritt besteht darin, eine Überprüfungsklasse zu erstellen:
öffentliche Klasse EmailValidator implementiert ConstraintValidator <E -Mail, String> {private String regexp; @Override public void initialize (E -Mail -ConstaintAntation) {this.regexp = constainnotation.regexp (); } @Override public boolean isValid (String -Wert, ConstraintValidatorContext -Kontext) {if (value == null) {return true;} if (value.matches (regexp)) {return true; } return false; }} Implementieren Sie hier einfach ConstraintValidator<Email, String> Schnittstelle und erstellen Sie einen Validator. Die initialisierende Methode erhält den kommentierten Regexp -Wert und die ISValid -Methode wird verifiziert. Wenn es den regulären Ausdruck erfüllt, kehrt es wahr zurück, sonst gibt es falsche zurück.
Es ist zu beachten, dass wenn der Wert leer ist, dh wenn das Überprüfungsobjekt nicht initialisiert wird, müssen die entsprechenden Bestätigungsregeln geschrieben werden, andernfalls wird ein Fehler gemeldet. Im obigen Code steht geschrieben::
if (value == null) {return true;}Das heißt, wenn das Verifizierungsobjekt leer ist, gibt es den Erfolg zurück.
Der dritte Schritt besteht darin, die Standardfehlermeldung zu schreiben. Tatsächlich wurde dieser Schritt im ersten Schritt durch Standardeinstellung durchgeführt, sodass dieser Schritt nicht durchgeführt werden muss.
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Referenzwert für das Studium oder die Arbeit eines jeden hat. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen. Vielen Dank für Ihre Unterstützung bei Wulin.com.