Heim  >  Artikel  >  Java  >  Verwendung des Validator-Frameworks in Struts

Verwendung des Validator-Frameworks in Struts

黄舟
黄舟Original
2016-12-17 10:52:061040Durchsuche


Jede Anwendung trägt die Verantwortung dafür, dass die Daten, die sie in die Backend-Datenbank einfügt, legal und gültig sind. Denn wenn die Daten, auf die diese Anwendungen angewiesen sind, gefährdet sind, kann das eine Katastrophe sein verwenden, damit es richtig funktioniert? Beispielsweise verfügt in einer Anwendung, die eine formale relationale Datenbank verwendet, jedes Feld in der Datenbank über eigene Regeln und Einschränkungen, um sicherzustellen, dass die darin gespeicherten Daten bis zu einem gewissen Grad korrekt sind. Jede Anwendung, die Backend-Repository-Daten verwendet, ist für den Schutz der Integrität der von ihr übermittelten Daten verantwortlich.
 
Jeder Versuch, Daten einzufügen oder zu aktualisieren, die nicht den Standards entsprechen, wird wahrscheinlich erkannt und abgelehnt. Diese Art der Erkennung kann über alle Ecken der Anwendung verteilt sein und eine gewisse Überprüfung kann auf der Präsentationsebene durchgeführt werden. Auf der Ebene der Geschäftslogik verfügen Geschäftslogikobjekte im Allgemeinen auch über eine Überprüfung der Geschäftslogik, und Daten müssen auch im Hintergrund überprüft werden Datenbank.
 
Da diese Art der Überprüfung in der Anwendung allgegenwärtig ist, führt sie leider dazu, dass die Anwendung die Daten bis zu einem gewissen Grad überprüft. Dies ist nicht das, was die Anwendung möchte, da diese doppelte Arbeit an mehreren Stellen dazu führt, dass die Bereitstellung und Wartung der Anwendung mehr Zeit in Anspruch nimmt. Wenn diese Validierungsregeln in der gesamten Anwendung wiederverwendet werden können, wird die Anwendung flexibler. Mit anderen Worten: Die Bereitstellung wird schneller, die Anpassung wird einfacher und das Programm wird flexibler.
 
 Einführung in das Jakarta Commons-Projekt Validator Framework
 Validator ist ein Open-Source-Projekt, das von David Winterfeldt erstellt wurde. Es ist auch ein Unterprojekt von Jakarta Commons. Das Commons-Projekt stellt hauptsächlich einige wiederverwendbare Komponenten wie Validator bereit. Zu den weiteren bekannten Commons-Komponenten gehören BeanUtils, Digester, Logging Framework usw. Validator Version 1.0 wurde Anfang November 2002 veröffentlicht.
 
Vorteile der Verwendung von Validator
Die Verwendung des Validator-Frameworks bietet viele Vorteile gegenüber der Definition von Validierungsregeln im Anwendungscode, wie zum Beispiel:
Validierungsregeln können für die Anwendung an einer Stelle definiert werden
. Validierungsregeln und Anwendungen sind lose gekoppelt;
Das Konfigurieren neuer Validierungsregeln oder das Ändern vorhandener Validierungsregeln. Unterstützung der Internationalisierung;
.Unterstützt reguläre Ausdrücke;
.Kann für Webanwendungen oder Standard-Java-Anwendungen verwendet werden.
Darüber hinaus ist das größte Merkmal von Validator die Unterstützung der Pluggability. Später im Artikel
 
erfahren Sie, wie Sie die integrierten Validierungsregeln des Validator-Frameworks verwenden, um Ihre Arbeit besser abzuschließen. Und was noch wichtiger ist: Das Validator-Framework ermöglicht es Ihnen, den Validator anzupassen und in ihn einzufügen Der Rahmen.
 
 Die Beziehung zwischen Struts und Validator
 Es sollte darauf hingewiesen werden, dass das Validator-Framework selbst auf dem Struts-Framework aufbaut. David Winterfeldt, der Erfinder von Validator, entdeckte bei der Verwendung von Struts, dass dieselben Validierungsregeln in vielen ActionForm-Klassen wiederholt verwendet werden müssen, was zu einer großen Coderedundanz führt. Deshalb beschloss er, das Validator-Framework zu erstellen, um diese Redundanz zu beseitigen, und Validator war geboren.
 
Obwohl die Validator-Architektur ursprünglich für die Struts-Architektur entwickelt wurde, ist sie so konzipiert und konstruiert, dass sie unabhängig von der Struts-Architektur verwendet werden kann. Mit dieser Funktion können Sie dieses Framework in jeder Anwendung verwenden, unabhängig davon, ob es Struts-basiert ist oder nicht. Nur weil Sie das Struts-Framework nicht verwenden, hat dies keinen Einfluss auf die Auswirkung der Validator-Architektur auf Ihre Anwendung. Aus diesem Grund ist Validator tatsächlich Teil des Jakarta Commons-Projekts und nicht direkt Teil des Struts-Projekts.
 
Jetzt integrieren wir dieses Framework in Webanwendungen wie die Struts-basierte Architektur. Am Ende des Artikels stellen wir vor, wie man es auf andere Arten von Anwendungen anwenden kann, beispielsweise auf EJB-basierte Anwendungen.

Übersicht über die Validator-Komponenten
Die Validator-Architektur besteht aus den folgenden Komponenten:
Validatoren;
Benutzerdefinierte JSP-Tags; Formularklasse;

Was sind Validatoren?
Ein Validator ist eine Java-Klasse, die vom Validator-Framework aufgerufen wird, wenn eine Validierungsregel ausgeführt wird. Das Framework ruft diese Validaotor-Klasse basierend auf der in der Konfigurationsdatei definierten Methodensignatur auf. Normalerweise stellt jede Validator-Klasse eine separate Validierungsregel bereit, die dann zu komplexeren Regelsätzen kombiniert werden kann.
 
Hinweis: Manchmal kann eine Validator-Klasse der Einfachheit halber auch mehrere Validierungsregeln definieren, und jede Regel ist eine statische Methode und enthält keine Client-Statusinformationen.
 
Das Framework stellt 14 Standardvalidierungsregeln bereit. Manchmal werden diese Regeln auch als „Grundregeln“ des Validator-Frameworks bezeichnet:
Name    ​​Beschreibung
Byte, Short, Integer, Überprüfen Sie, ob der Wert in den entsprechenden Basisdatentyp konvertiert werden kann
Long, Float, Double
CreditCard Überprüfen Sie, ob das Eingabefeld eine gültige Kreditkartennummer ist
Datum Überprüfen Sie, ob die Eingabe Feld ist ein gültiges Datum
E-Mail. Überprüfen Sie, ob die Eingabe eine gültige E-Mail-Adresse ist.
Maske. Überprüfen Sie, ob das Eingabefeld erfolgreich mit einem regulären Ausdruck übereinstimmen kann.
maxLength. Überprüfen Sie, ob die Länge des Werts kleiner oder gleich ist die angegebene maximale Länge
minLength Überprüfen Sie, ob die Länge des Werts größer oder gleich der angegebenen minimalen Länge
ist. Überprüfen Sie, ob der Bereich des Werts zwischen dem maximalen Wert und dem erforderlichen minimalen Wert
liegt |. Überprüfen Sie, ob das Eingabefeld nicht leer ist oder ob die Länge des Werts, der keine Leerzeichen enthält, größer als Null ist
Tabelle 1
Wie Sie in Tabelle 1 sehen können, übernimmt das Validator-Framework den größten Teil der Validierung Regeln, die für Webanwendungen erforderlich sind. Sie können diese vorhandenen Validierungsregeln verwenden, um Ihre eigenen Validierungsprofile zu erstellen. Dennoch können Sie, wie bereits erwähnt und später noch besprochen, je nach Bedarf weitere Validatoren hinzufügen.
 
Lassen Sie uns nun diskutieren, wie diese grundlegenden Validatoren in einer Anwendung basierend auf der Struts-Architektur konfiguriert und verwendet werden.
Was das Validator-Framework flexibel macht, besteht darin, dass alle Validierungsregeln und ihre spezifischen Details durch Konfigurationsdeklarationen in externen Dateien implementiert werden. Ihre Anwendung muss diese spezifischen Validierungsregeln nicht kennen. Mit dieser Funktion können Sie den Regelsatz erweitern und ändern, ohne den Quellcode Ihrer Anwendung zu berühren. Dies ist sehr wichtig, wenn Sie jede Installation personalisieren möchten oder wenn sich Ihre Anforderungen ändern.
Wenn Sie das Validator-Framework von Struts 1.1 verwenden, verwenden Sie zwei Konfigurationsdateien, eine heißt validator-rules.xml und die andere heißt validation.xml. Sie können sie tatsächlich auch beliebig benennen oder sogar kombinieren sie in eine XML-Datei. Sie sollten sie jedoch besser getrennt aufbewahren, da sie jeweils ihre eigenen Verwendungszwecke haben.
 
Hinweis: Wenn Sie Validator von der Jakarta-Website herunterladen, sind diese beiden Dateien nicht enthalten. Diese beiden Dateien sind nur im Struts-Download zu finden, der das Validator-Framework enthält.
Validator-rules.xml-Datei
Die validator-rules.xml-Datei definiert die Validatoren, die die Anwendung verwenden kann. validator-rules.xml fungiert als Vorlage und definiert die Validatoren, die von allen Anwendungen verwendet werden können.
 
Hinweis: Diese XML-Datei und eine weitere XML-Datei, die wir weiter unten besprechen werden, sollten dort abgelegt werden, wo der Klassenlader sie finden kann. Wenn wir das Validator-Framework in einer Webanwendung verwenden, sollte sich der richtige Speicherort unter WEB-INF befinden.
Die Datei validator-rules.xml unterliegt der Verwaltung von validator-rules_1_1.dtd, die von jakarta.apache.org/struts/dtds/validator-rules_1_1.dtd heruntergeladen werden kann. Wir möchten nicht zu viel Zeit damit verbringen, die spezifischen Details dieser Datei zu studieren, sondern geben hier nur eine grundlegende Einführung.
Die wichtigsten Elemente in der validator-rules.xml-Datei sind im -Element enthalten, zum Beispiel Beispiel 1:
Beispiel 1: Eine einfache validator-rules.xml-Datei
< form- validation>
 
 methodparams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.required"/>

classname="org.apache.struts.util. StrutsValidator"
Method="validateMinLength"
methodparams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
ORG.APACHE.STRUTS.ACTION.ACTIONERRORS,
javax.servlet.httpservletRequest "
Depends =" Erforderlich "
msg =" Fehler. minlength "/& gt; <🎜 ;> & Lt;/global & gt ;
 
 
 
 
Jeder von der Anwendung verwendete Validator entspricht einem -Element. In Beispiel 1 zeigen wir Ihnen zwei Validatoren, einer ist der Anforderungsvalidator und der andere ist der Mindestlängenvalidator. Das -Element unterstützt viele Attribute. Diese Eigenschaften sind erforderlich, um dem Framework mitzuteilen, welche richtige Klasse und Methode dieser Validator aufrufen soll. Beispielsweise gibt das Anforderungsvalidatorelement in Beispiel 1 an, dass dieser Validator die Methode „validateRequest()“ der Klasse „org.apache.struts.util.StrutsValidator“ aufruft. Der Validator kann auch von einem anderen Validator abhängen. Der Mindestlängen-Validator in Beispiel 1 ist beispielsweise ein Abhängigkeitsattribut, das angibt, dass dieser Validator vom anfordernden Validator abhängt. Das msg-Attribut gibt eine Ressourcenbindung mit einem Schlüsselwert an, den das Framework verwendet, um die richtige Fehlermeldung zu generieren. Die Verwendung der Ressourcenbindung ist für die Lokalisierung von Fehlermeldungen von Vorteil.
 Das -Element unterstützt auch das -Unterelement, mit dem Sie eine vom Client auszuführende JavaScript-Funktion angeben können. Auf diese Weise können serverseitige und clientseitige Validierung an derselben Stelle festgelegt werden, was die Wartung der Anwendung vereinfacht.
 
 validation.xml-Datei
 Die zweite Konfigurationsdatei des Validator-Frameworks ist diese Datei namens validation.xml. Tatsächlich können Sie es beliebig benennen.

Das Obige ist der Inhalt der Verwendung des Validator-Frameworks in Struts. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn). !


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn