Vorwort
Die Datenüberprüfung ist eine Aufgabe, die fast jede Anwendung erledigen muss. Die vom Benutzer eingegebenen Daten werden an den Server gesendet. Gott weiß, ob die vom Benutzer eingegebenen Daten legal sind und ob sie böswillig sind. Daher muss ein robustes Anwendungssystem die Eingabe des Benutzers überprüfen, illegale Eingaben außerhalb der Anwendung blockieren und verhindern, dass diese illegalen Eingaben in das System eintreten, wodurch die Stabilität und Sicherheit des Systems sichergestellt wird.
Wir alle wissen, dass aktuelle Webanwendungen für eine bessere Benutzererfahrung und eine höhere Effizienz die folgenden zwei Datenüberprüfungen haben:
Die Überprüfung der Clientdaten erfolgt hauptsächlich über den JavaScript -Code. Die serverseitige Datenüberprüfung ist die letzte Verteidigungslinie für die gesamte Anwendung, um illegale Daten zu blockieren, und wird hauptsächlich durch Programmierung in der Anwendung implementiert.
Um die Arbeitsbelastung von Entwicklern zu verringern und die Arbeitseffizienz zu verbessern, hat das Struts2 -Framework auch viel Aufwand in die Datenüberprüfung eingeführt. Wie führt Struts2 die Datenüberprüfung durch? (Da die Client-Überprüfungsfähigkeit des Struts2-Frameworks schwach ist, wird er nicht zusammengefasst. Dieser Artikel fasst die serverseitige Datenüberprüfungsfunktion des Struts2-Frameworks hauptsächlich zusammen)
Schreiben Sie Verifizierungsregelndateien
Wir alle wissen, dass die Datenüberprüfung alles umständlich ist. Um aus diesen umständlichen Codes herauszukommen, bietet das Struts2 -Framework Datenüberprüfung basierend auf Konfigurationsdateien. Es erfordert nur das Schreiben einer Verifizierungsregeldatei. Die Verifizierungsregeldatei gibt an, welche Regeln jedes Formularfeld erfüllen sollen.
Sprechen wir über ein Demo -Beispiel über die Eingabeüberprüfung des Struts2 -Frameworks.
Seite an der Rezeption:
<Body> <Form Action = "login" method = "post"> username: <input type = "text" name = "name" /> <s: fielderror fieldname = "name" /> <br> Passwort: <Eingabe type "password" name = "password" /> <s: fielderror fieldname "passwart" /> <Br> ay "ay" ag. Fieldname = "Alter" /> <br> Geburtstag: <Eingabe type = "text" name = "birthday" /> <s: fielderror fieldname = "birthday" /> <br> <Eingabe type = "subine" value = "subine" /> < /body> < /body>
Hintergrundaktionsverarbeitungscode:
Die LoginAction für öffentliche Klasse erweitert die AktionSverpackung {private String -Name; privates Zeichenfolgenkennwort; privates int Alter; Privatdatum Geburtstag; privater String -Tipp; public void setName (String name) {this.name = name; } public String getName () {return name; } public void setPassword (String -Passwort) {this.password = password; } public String getPassword () {Kennwort zurückgeben; } public void setage (int age) {this.age = älter; } public int getage () {return ay; } public void setBirthday (Datum Geburtstag) {this.birthday = Geburtstag; } public date getBirthday () {Return Birthday; } public void setip (String tipp) {this.tip = tip; } public String gettip () {return tip; } public String execute () löst Ausnahme aus {// Die Operation wird hier vereinfacht. Erfolgserfolg; }}Über den obigen Aktionscode können wir feststellen, dass ich keinen Feldüberprüfungscode hinzugefügt habe, aber wir müssen nur eine Bestätigungsdatei schreiben, wie folgt:
<? Root-Element der Verifizierungsdatei-> <Validators> <!-Überprüfen Sie das Namensattribut der Verifizierungskonfigurationsdatei-> <Feldname = "Name"> <!-Geben Sie das Namensattribut an-> <Feld-Validator Typ = "fordertstring"> <param name = "trim"> true </param> </param> </param> </must> mussten in </field- -> <field-Validator type = "regex"> <param name = "regexexpression"> <! [cdata [(/w {4,25})]]> </param> <message> Der Benutzername, den Sie eingeben, kann nur Buchstaben und Zahlen sein, und die Länge muss zwischen 4 und 25 </message> </field-validator> field-validator> </field> </field> </field> </field> <! name = "password"> <field-Validator type = "fordersstring"> <param name = "trim"> true </param> <meldung> Kennwort muss eingegeben werden </message> </field-Validator> <field-validator type Eingabetaste kann nur Buchstaben und Zahlen sein, und die Länge muss zwischen 4 und 25 </message> </field-Validator> </field> <!-das Altersattribut der Aktion-> <field name = "Alter"> <field-validator type = "int"> <param name = "min"> 1 </param> </param> </param> </param> </max "> 150 </param> </mess. </field-validator> </field> <!-- Verify the birthday property of the Action--> <field name="birthday"> <field-validator type="date"> <param name="min">1900-01-01</param> <param name="max">2050-02-21</param> <message>Birthday must be between ${min} and ${max}</message> </field-validator> </field> </validators>Die Verifizierungsdateiregeln von Struts2 unterscheiden sich von der Verifizierungsdateidesignmethode von Struts1. Jede Aktion in Struts2 hat eine Überprüfungsdatei, sodass der Dateiname der Verifizierungsdatei den folgenden Regeln entsprechen sollte:
<Aktionsname> -Validation.xml
Der vorherige Aktionsname kann geändert werden, der nachfolgende Teil der Validation.xml ist immer behoben, und die Überprüfungsdatei sollte auf demselben Pfad wie die Aktionsklassendatei gespeichert werden.
Ähnlich wie bei der Eingabeverifizierung des Typs konvertierende Konvertierung gibt Struts2 auch automatisch ein Ergebnis mit dem Namen "Eingabe" zurück, sodass ein Ergebnis mit dem Namen "Eingabe" in der Datei struts.xml konfiguriert werden muss.
Internationalisierung prompt Informationen
Im Falle eines Verifizierungsfehlers muss der Benutzer für Fehlermeldungen aufgefordert werden. Jetzt tritt jetzt ein Problem auf. Wie kann in einer Umgebung mit mehrsprachiger Umgebung die entsprechenden Sprachforminformationen korrekt aufgefordert werden? Es ist nicht möglich, es direkt in die Verifizierungsdatei wie oben zu schreiben. Geben Sie für die Internationalisierungsinformationsinformationen das Schlüsselattribut für das Nachrichtenelement an, das den Schlüssel angibt, der den Internationalisierungsinformationsinformationen entspricht.
Beispielsweise kann die obige Überprüfungsdatei grob wie folgt geschrieben werden:
<!-Überprüfen Sie das Namensattribut der Aktion-> <Feldname = "Name"> <!-Das angegebene Namensattribut muss die erforderlichen Regeln erfüllen-> <Feld-Validator-Typ = "fordertString"> <param name = "trim"> true </param> <Message Key = "Name. type = "regex"> <param name = "regexexpression"> <! [cdata [(/w {4,25})]]> </param> <message key = "name.regex"/> </field-validator> </field>Eingebaute Prüfer
In der obigen Überprüfungsdatei können Sie eine solche Anweisung sehen:
<field-Validator type = "fordersstring"> <field-Validator type = "regex"> ...
Der Typ -Attributwert hier ist der Checker. Es gibt eine große Anzahl integrierter Verifizierungsgeräte im Rahmen von Struts2. Diese integrierten Verifizierungsgeräte können die Überprüfungsanforderungen der meisten Anwendungen erfüllen. Wir müssen diese Überprüfungsgeräte nur verwenden.
Wir können das Dekompressionstool verwenden, um die Datei Xwork-Core-2.3.24.1.jar zu öffnen. Unter dem XWork-Core-2.3.24.1.Jar/com/openSymphony/xwork2/Validator/Validators-Pfad finden wir eine Standarddatei für Standard. Diese Datei ist die Standard -Registrierungsdatei für Struts2 für Überprüfungen und der Inhalt lautet wie folgt:
<xml Version = "1.0" coding = "utf-8"?> <! docType validators public "-// Apache Struts // xwork Validator Definition 1.0 // en" "http://struts.apache.org/dtds/xwork-validator-definition-1.0.Dtd"><! Verifier-> <Validator name = "Erforderlich"/> <Validator name = "Erforderlich"/> <!-Integer Verifier-> <validator name = "int"/> <!-Long Integer Verifier-> <validator name = "long"/> <!-Kurzer Ganzzahl verifier-> <validator name = "shunger"/> <! Verifier-> <Validator name = "Date"/> <!-Ausdruck Verifier-> <Validator name = "Ausdruck"/> <!-Feldausdruck Verifier-> <Validator name = "fieldExpression"/> <!-E-Mail-Verifier-> <validator name = "E-Mail"/> <! name = "Visitor"/> <validator name = "Conversion"/> <validator name = "Conversion"/> <validator name = "StringLength"/> <validator name = "regex"/> <validator name = "Conditionalvisor"/> </validators> <!-End-Snippet: Validators-Default->
In Bezug auf die spezifische Verwendung dieser Verifizierungsgeräte werde ich hier keine Beispiele geben.
Zusammenfassen
Dieser Artikel fasst kurz die Verifizierungsgeräte im Struts2 -Framework zusammen. Die Grundlagen für die hier genannten Verifizierungsgeräte sind, wie sie sie verwenden. Das Wichtigste ist, die Idee von Struts2 -Verifizierungsgeräten zu beherrschen und diese durch Konfiguration zu vervollständigen. Diese Methode lohnt sich zu lernen. In unserem Lernen anderer Frameworks werden wir auch auf diese Methode stoßen. Studieren, Schmerz und Glück.
Okay, 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.