2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
4.5 Serverseitige Formularvalidierung<br />
Als Rich Internet Application verfügt das PVS über einen umfangreichen Live-Validierungs-<br />
Apparat für das im letzten Abschnitt diskutierte <strong>Web</strong>formular, d.h. über einen<br />
Validierungsmechanismus für Benutzereingaben, der clientseitig oder mittels asynchroner<br />
Kommunikation mit dem Server arbeitet 34 . Trotzdem ist es aus Sicherheitsgründen<br />
erforderlich, die Dateneingaben aus Formularen auch auf Serverseite zu kontrollieren, bevor<br />
sie dort verarbeitet werden. Denn manche Benutzer deaktivieren in ihrem Browser aus<br />
verschiedenen Gründen die Technologien (z.B. JavaScript), die für das Funktionieren<br />
mancher RIA-Features (wie z.B. der Live-Validierung) notwendig sind, oder haben die dafür<br />
nötigen Plugins (z.B. für Flash) nicht installiert.<br />
Die Zutaten, die für die Modellierung eines serverseitigen Validierungsmechanismus benötigt<br />
werden, sind alle schon in den letzten Abschnitten über den PVS-Systementwurf zur Sprache<br />
gekommen oder zumindest in Diagrammen abgebildet worden, ohne explizit erwähnt worden<br />
zu sein. Es sind dies die Validierungsfunktionalität, die von der abstrakten Klasse<br />
ValidableObject des Inhaltsmodells zur Verfügung gestellt wird, die<br />
Prozesseigenschaften validationErrors der DataInput-Klassen des Prozessmodells<br />
sowie einige «text»-Elemente im «inputForm»-Publikationsformular des<br />
Präsentationsmodells, die zur Anzeige des Validierungsresultats benötigt werden (siehe<br />
Abbildung 17).<br />
Abbildung 17: Komponenten des Validierungsmechanismus<br />
Das «text»-Element BibtexKeyValidationResult ist mit dem Tagged Value<br />
valueExpression versehen, dessen Wert festlegt, welcher Inhalt von dem Textelement<br />
dargestellt werden soll. Im Beispiel wird mit this.validationErrors<br />
(„bibtexKey“) auf die Eigenschaft validationErrors des Kontexts des<br />
«inputForm»-Elements Bezug genommen, d.h. auf die Prozesseigenschaft<br />
validationErrors der Prozessklasse PublicationDataInput. Diese wiederum ist<br />
mit dem gleichnamigen Attribut der Publication-Inhaltsklasse verknüpft, das von<br />
validableObject geerbt wird. Diese Kette von Eigenschaftsverknüpfungen bewirkt, dass<br />
im Formular eine Fehlermeldung bzgl. des Wertes des BibTeX-Schlüssels angezeigt wird,<br />
sobald ein Publikationsobjekt als Datengrundlage dient, dessen BibTeX-Schlüssel ungültig ist,<br />
d.h. dessen validationErrors-Attribut für den Schlüssel 'bibtexKey' einen nicht-leeren<br />
Wert besitzt.<br />
Der Datenfluss, der im Rahmen der Neuaufnahme bzw. der Editierung einer Publikation zu<br />
einer solchen Situation führen kann, wird schematisch in folgendem Aktivitätsdiagramm<br />
dargestellt (siehe nächste Seite).<br />
34 Mehr dazu in Kapitel 5 über die Modellierung von RIA-Features im PVS.<br />
39