Nachdem die Instanz des ChibaProcessors erstellt wurde, wird die Methode setStylesheetDir() verwendet, um das Default-Verzeichnis für Style-Sheets anzugeben, welches Chiba für die Anzeige des Formulars verwendet. Chiba stützt sich dabei für die Darstellung von Formularen und die Verarbeitung von Instanz-Daten stark auf XSLT. Bislang werden nur serverseitige Transformationen unterstützt. Außerdem ist Chiba von einem speziellen XSLT-Prozessor abhängig, Xalan. Doch ermöglicht die Verwendung von serverseitigem XSLT anwendungsweite Darstellungsfähigkeiten. Durch Änderung der Style-Sheets sind die Formulare z. B. für mobile Browser (wo das Format WML statt XHTML ist) oder sprachgestützte Browser verwendbar (wo das Format VoiceXML statt XHTML ist).
Erstellen einer Session-Variable
Als nächstes muss die Prozessor-Instanz in einer Session-Variablen gespeichert werden. Sie wird noch einmal in einer doPost()-Methode verwendet werden, wenn der Benutzer das Formular abschickt. Einmal erstellte Objekte in einer Session zwischen den einzelnen Requests zu speichern, ist ein skalierbares Verfahren, solange das Servlet Thread-sicher ist. Man sollte aber beachten, dass das Speichern von Objekten in Sessions zu einem hohen Speicherbedarf der Anwendung führt.
Derzeit verfügt Chiba noch über keine eingebauten Funktionen für die Unterstützung von Multithreading, so dass dies das Problem des Servlet-Entwicklers bleibt. Einige Lösungsmöglichkeiten gibt es, z. B. Pooling und/oder Caching von Chiba-Prozessoren oder die Synchronisierung des Codes.
Das XForms-Modell wird durch Aufruf der init()-Methode in den Prozessor geladen. Hier werden die Instanz-Daten in einem DOM-Dokument gespeichert, das auf unterschiedlicher Weise konstruiert werden kann: aus einer Datenbank abgerufen, per SOAP von einem entfernten Web Service erhalten oder selbst erzeugt.
Die Magie von XSLT
Nun kann der letzte magische Funktionsaufruf erfolgen – getResponse() -, der auf transparente Weise das XForms-Modell mit den Instanz-Daten per XSLT für die Präsentation aufbereitet. Hier wird das HTML-Formular im Browser wie in Abbildung A dargestellt.
Verarbeitung von XML-Daten
Dies ist der interessanteste Teil – die Verarbeitung der XML-Daten, die vom Prozessor mit der doPost()-Methode an die Anwendung geschickt werden. In diesem Fall ist die Anwendung das Servlet. Der derzeit aktive Prozessor wird aus einer Session-Variablen geladen, worauf man ein ausgefülltes Formular in Form reiner Request-Parameter erhält, die von Chiba entsprechend kodiert wurden.
Als Erstes werden die Instanz-Daten in XML konvertiert. Hierfür muss man einen speziellen Parser für die Request-Parameter implementieren, XmlRequest, der ein DOM-Dokument zurückgibt, indem er die doTransform()-Methode aufruft. Darüber hinaus kodiert Chiba weitere übermittelte Informationen, wie z. B. die aufgerufene Methode, update, delete, add und submit. Nach der Aktualisierung der Instanz-Daten kann man das erstellte XML-Dokument abrufen, indem man eine Reihe von Methoden für den Abruf des Instanz-Dokuments aufruft.
Effizienz für Daten-gesteuerte Lösungen
Die Erfahrung zeigt, dass XForms eine effiziente Lösung für Daten-gesteuerte Applikationen wie z. B. CMS- (Content Management System) oder CRM-Anwendungen (Customer Relationship Management) bietet. Obwohl immer mehr Browser diesen Standard unterstützen, wird es auch weiterhin einen Bedarf für die serverseitige Verarbeitung von XForms geben, solange Daten-gesteuerte Anwendungen auf Thin Clients laufen.
Neueste Kommentare
Noch keine Kommentare zu XForms und Java Frameworks
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.