Struts Seminar Javabasierte Webanwendungen
Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung
Tobias Kutzler3 Historie 2000: Craig R. McCalahan Entwicklung eines MVC Frameworks für Java- Plattform Januar 2001: Apache Software Foundation veröffentlicht MVC Framework: Struts Teil von Jakarta: Server-Lösungen für Java Plattform (z.b. Apache Tomcat)
Tobias Kutzler4 Was ist Struts? Model-View-Controller Framework Kompatibel zur J2EE Plattform Basis: JSP- und Servlet-Technologie Teil des Jakarta Projekts (Apache Software Foundation) Keine Implementierung eines eigenen MVC- Konzepts notwendig
Tobias Kutzler5 Was ist Struts? Konzept und Aufbau Präsentation und Interaktion View Struts Tag Library JSP Controller ActionServlet Action Konfiguration XML Ressourcen Properties Files Dienste und Datenhaltung Model (Status und Dienste des Systems) ActionForm und JavaBeans
Tobias Kutzler6 Model Datenmodell der Anwendung Methoden zur Datenbearbeitung und – verarbeitung Repräsentation des aktuellen Zustands der Applikation JavaBeans ActionForms
Tobias Kutzler7 Model JavaBeans Klassen mit Einhaltung von Namens- konventionen bei Methoden und besondere Ereignisbehandlung Wiederverwendbare Java Komponenten Kapselung der (Verarbeitungs-) Logik einer Webapplikation Unterscheidung Visuelle Beans Nichtvisuelle Beans
Tobias Kutzler8 Model JavaBeans - Merkmale Properties: Repräsentation der Objekteigenschaften Methoden zur Bearbeitung von Prozessen und logischen Operationen Ereignisse: Kommunikation zwischen Beans und anderen Objekten Statuspersistenz: Speicherung des Bean- Zustandes
Tobias Kutzler9 Model JavaBeans – Anwendung: Struts: nichtvisuelle Beans System-State-Beans (Login) Business-Logic-Beans (z.b. Datenbankoperationen) ActionForm-Beans
Tobias Kutzler10 Model ActionForm-Beans Abbildung von Eingabeformularen in ActionForm- Bean Speicherung und Verarbeitung der Eingaben Jedes Formularfeld Property in Bean validate(): Prüfung der Eingaben reset(): Zurücksetzen der Werte
Tobias Kutzler11 Controller Steuerung der Verarbeitung/Weitergabe Anwendungslogik (Bean) oder View Bestandteile ActionServlet ActionMapping struts-config.xml Klassen, die von Klasse Action abgeleitet
Tobias Kutzler12 Controller Identifikation der Elemente einer Struts Anwendung über logische Namen (Mapping) struts-config.xml Zuordnung logischer Namen zu Java Server Page, Servlet, Klasse Start der Anwendung: Einlesen erzeugt Mapping- Tabelle
Tobias Kutzler13 Controller ActionServlet Ablaufsteuerung Action-Objekte: Ausführung spezieller Aufgaben ActionForm-Beans: Speicherung und Validation von HTML-Formular Daten ActionForward-Klassen: Weiterleitung des Programmflusses (View oder anderer Controller)
Tobias Kutzler14 Controller ActionMapping Mapping-Table (basierend auf struts-config.xml) Zuordnung von Requests zu Action-Klassen Bereitstellung einer Menge möglicher Weiterleitungs-Adressen (ActionForwards) ActionForward Weiterleitung des Nutzers auf neue Seite
Tobias Kutzler15 Controller Action Logische Anfrage Action-Klasse Verarbeitung des Requests, Rückgabe eines ActionForward-Objekts (Identifikation der nächsten Seite als logischer Name) perform() Umsetzung Aufruf der Geschäftslogik: JavaBean
Tobias Kutzler16 Controller Client Anfrage Controller (ActionServlet) View (JSP) ActionMapping Action struts-config.xml Model Bean Antwort web.xml Struts-Tag- Bibliothek Properties File
Tobias Kutzler17 Controller Zusammenfassung Aufruf mittels URI (z.b. ActionServlet: Suche eines passenden ActionMappings Properties aus Eingabeformular in ActionForm- Bean Aufruf von perform(): Verarbeitung durch Action und Rückgabe von ActionForward Weiterleitung an View
Tobias Kutzler18 View Darstellung der Daten Java Server Pages Ausgabe: HTML, XML, JavaScript Struts: Erweiterung der Funktionalität durch Tag-Bibliotheken Erstellung von Formularen Interaktion von ActionForm-Beans Fehlerbehandlung
Tobias Kutzler19 View Tags Erweiterbarkeit der JSP-Tag Library Definition in Tag Library Files (*.tld) Pro Tag eine Java-Klasse mit Properties Erzeugung von HTML für Client
Tobias Kutzler20 View Bean-Tags Zugriff auf Beans und deren Properties (get/set) HTML-Tags Erzeugen des HTML-Codes von Eingabeformularen …
Tobias Kutzler21 View Logic-Tags Bedingte Textausgabe Iteration über Objekt-Collections Anwendungsfluss-Management Iteration Existenzprüfung
Tobias Kutzler22 Zusammenfassung Vorteile: Komplexe Webanwendung wird in kleine Komponenten aufgeteilt (Bottom Up) Anwendung leicht erweiterbar und Komponenten durch Trennung wiederverwendbar Open Source Für grosse Anwendungen geeignet Bei Wachstum der Anwendung bleiben Überblick und Variabilität erhalten
Tobias Kutzler23 Zusammenfassung Nachteile Aufteilung der Anwendung in Komponenten hohe Komplexität Noch in Weiterentwicklung und Veränderung Änderungen im Code möglicherweise nötig
Tobias Kutzler24 Quellen Struts User Guide jakarta.apache.org/struts Sebastian Stein: Das Struts Framework der Apache Software Foundation (Studienarbeit, BA Mannheim) Marcel May, Daniel Marques, Dr. Roland Huß: Workshop: Struts in der Praxis