08.12.2012 Aufrufe

2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...

2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...

2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!