| |
Die System-State-Beans/ActionForm-Beans repräsentieren den Zustand der Applikation. Wird
z.B. ein Web-Shop mit Struts erstellt, kann der Warenkorb durch
ein JavaBean repräsentiert
werden. Dieses nimmt die einzelnen Artikel, also die aktuellen Daten, die der
Benutzer ausge-
wählt hat, auf. Auch für die Verwaltung von Daten, die durch den Benutzer direkt eing egeben wurden, werden
diese JavaBeans verwendet. In einer Web-Applikation
werden Daten über Formulare auf HTML-
Seiten bzw. JavaServer Pages eingegeben. Der Benutzer kann hier verschiedene Felder
mit
Daten füllen. Nach dem ausfüllen des HTML-Formulars werden diese Daten
an den Server
übermittelt. Das Struts-Framework bietet eine komfortable Möglichkeit,
diese Daten in zu
speichern und weiterzuverwenden. In einer Konfigurations-Datei (struts-config.xml)
kann jedem
HTML-Formular der Applikation eine ActionForm-Bean zugeordnet werden. Diese ActionForm-
Beans sind JavaBeans, die Attribute besitzen, die mit den Namen der Felder im HTML-Formular
korrespondieren. Sie leiten sich von der Klasse ActionForm
ab. Wird beispielweise in einem
Formular der Vorname, Nachname und die eMail-Adresse abgefragt, so besitzt die
dazugehörige
ActionForm-Bean
diese drei Attribute, auf die über die bekannten getter- und setter- Methoden
zugegriffen werden
kann. Das Struts-Framework sorgt dafür, dass beim Request die Attribute der
ActionForm-Bean automatisch mit den eingegebenen Daten gefüllt werden. Der Entwickler muss
hierfür keine gesonderte Routine zur Verfügung stellen. Darüber hinaus bietet das Framework
noch die Möglichkeit, die eingegebenen Daten auf ihre Gültigkeit zu
überprüfen. Hierzu redefi-
niert man die Methode validate() in der ActionForm-Bean. Innerhalb der Methode können die
Werte der Felder nach bestimmten Regeln überprüft werden. Ist diese
Methode vorhanden, wird
sie automatisch nach dem Absenden des ausgefüllten Formulars ausgeführt.
Tritt während der
Validierung ein Fehler auf, kann auf eine andere Seite, die eine Fehlermeldung
beinhaltet,
verwiesen werden oder es wird das Eingabeformular noch einmal zur Ansicht gebracht.
Hierbei
sind die Felder gleich mit den zuvor vom Benutzer eingegebenen Werten vorbelegt.
So kann er
seine Fehleingabe leichter korrigieren. Es ist aber nicht immer sinnvoll die Validierung in der
Action-Form-Bean vorzunehmen.
Wird die JavaBean z.B. für verschiedene Formulare verwendet,
ist es meist sinnvoller, die Überprüfung in
der Action-Klasse vorzunehmen. Abschließend sei
hierzu anzumerken, dass sich ein HTML-Formular zur Dateneingabe auch über
mehrere HTML-
Seiten erstrecken kann. Bekannt ist das z.B. aus diversen Wizard-Anwendungen,
die häufig zur
Installation von Programmen verwendet werden. Es wird dazu nur ein Action-Form-Bean
benötigt, das die Daten aller zusammengehörenden Seiten aufnimmt. Ein Web-Designer kann somit später die Anordnung der Eingabe-Felder verändern, ohne dass Änderungen an der
Prozesssteuerung notwendig sind. 4.3
Struts-View Die
View-Komponente ist für die Präsentation der Daten zuständig. Sie
beinhaltet weder Ab-
laufsteuerung, noch Geschäftslogik. Von ihr wird die HTTP-Response an den Client-Browser zurückgeschickt. Die Darstellung wird normalerweise durch JavaServer Pages vorgenommen. Diese können sowohl statisches HTML, XML, zur Laufzeit erzeugte Inhalte oder JavaScript enthalten.
Der zur Laufzeit erzeugte Teil von JavaServer Pages
basiert auf der Interpretation von soge-
nannten Action-Tags (siehe auch Kapitel 7.5
Benutzerdefinierte JSP-Tags). Dadurch wird
innerhalb von JSP so viel Java-Code wie möglich aus der View herausgehalten.
Des weiteren
vereinfachen sie die Erstellung von JavaServer Pages. Das Struts-Framework stellt
umfangrei-
che Tag-Bibliotheken zur Verfügung, welche die Funktionalität von gewöhnlichen JSP erweitern. Die Struts-Tag-Bibliotheken vereinfachen
die Internationalisierung von Web-Applikationen, die Erstellung von Formularen,
|  |
|
| |
|
|