Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Java EE 7 Grundkurs

Ressourcen verwalten

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Das JSF-Framework verfügt über leistungsstarke Bibliotheken, um sämtliche Ressourcen einer Webapplikation zu verwalten. Dabei besteht zusätzlich die Möglichkeit, Ressourcen zu versionieren.

Transkript

In diesem Video werden wir uns mit Ressourcen befassen. Wir werden klären, was Ressourcen sind und wie diese Ressourcen statisch, oder über JSF verwaltet werden können. Lassen Sie uns zunächst über Ressourcen sprechen. Typische Ressourcen einer JSF-Applikation sind Bilder, CSS-Dateien, JavaScripte, oder auch andere statische Inhalte. Diese Ressourcen können verpackt werden. Entweder direkt im Web-Ordner, oder eingebettet in die Applikation. Direkt im Web-Ordner bedeutet, dass wir Unterverzeichnisse haben für verschiedene Arten von Ressourcen. Diese werden statisch ausgeliefert. Das bedeutet, der Browser adressiert diese und der Server liefert sie direkt zurück. Nachteile dieses Ansatzes: Wir haben stets eine direkte Referenzierung über den Dateinamen. Und damit einhergehend, haben wir nicht die Möglichkeit, eine Ressource einfach auszutauschen, z. B. eine neue Version dieser Ressource vorzuhalten. Der JSF-Ansatz ist etwas anders gestaltet. Im JSF-Umfeld ist es so, dass sich die Ressourcen im Unterordner /resources oder im Unterordner /META-INF/resources befindet. Solche organisierten Ressourcen können lokalisiert, versioniert und in Themes oder in Bibliotheken organisiert werden. Themes oder Bibliotheken sind Ordner, die sich innerhalb des /resources-Ordner, oder in einem Sprachenordner befinden. Versionen, oder Versionierung kann ich mit Unterordnern gewährleisten, die statt einem normalen, sprechenden Namen eine Nummer als Namen haben. Dabei wird JSF stets die höchste Version verwenden. Möchte ich eine Lokalisierung, also eine Adressierung über die Sprache haben, dann ist das ebenfalls ein Unterodner von /resources und hier ist der Name ein Sprach-Identifier. Also so etwas wie DE oder EN-US. Das Ganze ist über ein einfach zu erlernendes Schema organisiert. Und zwar gibt es den Wurzelordner /resources und da drin kann als erster Unterordner die Sprache kommen. Das ist optional. Innerhalb dieses Ordner kann dann, optional, ein Theme- oder ein Bibliothekenordner kommen. Das bedeutet, wir haben einen sprechenden Namen für eine Sammlung von Ressourcen. Da drin kann enthalten sein, ein versionierter Ordner. Und dann, innerhalb dieses versionierten Ordners kann ein lokaler Pfad folgen, bevor der Zugriff über die eigentliche Ressource geschieht. Das Ganze, also Sprache, Bibliothek, Version und lokaler Pfad ist optional. Es reicht durchaus auch aus, den Ordner /resources zu verwenden und dort seine Ressourcen drin zu organisieren. Wenn wir das Ganze dann ausgeben wollen, gehen wir über bestimmte, vordefinierte JSF-Komponenten. Diese verfügen stets über die Attribute "library" und "name". Um Bilder, die in Ressourcen-Ordnern liegen, auszugeben, können wir das Graphic Image Control benutzen. JavaScripte geben wir über die "outputScript"-Anweisung aus. CSS-Stylesheets geben wir über die "outputStylesheet"-Anweisung aus. Und wir können das Ganze auch über die Expression Language gewährleisten. Schauen wir uns einmal an, wie wir diesen Ressourcen-Ansatz für JavaScripte und für Stylesheets gewährleisten können. Wir sehen hier eine Webseite, eine XHTML-Seite, also eine Faces-Seite. Auf dieser Webseite sind im Kopfbereich zwei Komponente eingebunden, ein CSS-Stylesheet und ein JavaScript. Diese Komponenten dienen dafür, das UI zu regulieren und beim Klick auf einen Button eine Reaktion zu erzeugen. Wenn wir das Beispiel einmal ausführen, werden wir diese Ausgabe bekommen; klicke ich auf den Button, habe ich eine entsprechende Reaktion. Das Ganze ist grundsätzlich nicht schlecht, aber es ist halt ein statischer Ansatz. Das bedeutet, wenn ich Änderungen vornehmen möchte, zum Beispiel eine neue Version eines Stylesheets habe, oder ähnliche Dinge tun möchte, dann werde ich hier an meine Grenzen gelangen. Lassen Sie uns aus diesem Grund einmal versuchen, das Ganze mithilfe von Ressourcen umzusetzen. Zu diesem Zweck mache ich auf dem Webcontent-Ordner der Applikation einen Rechtsklick und lege einen neuen Ordner an. Dieser heisst resources. Wir könnten diesen Ordner auch innerhalb von META-INF anlegen, dann ist er nicht erreichbar von außen. So wäre dieser Ordner von außen immer noch erreichbar. Innerhalb dieses resources-Ordners lege ich einen weiteren Unterordner an, der für mich meine Bibliothek kennzeichnen wird. Ich werde zwei Bibliotheken verwalten, nämlich eine für ein graues Farbschema, und eine für ein rotes Farbschema. Ich lege also einen Ordner mit dem Namen "Grau" an und lege auf derselben Ebene auch einen Ordner mit dem Namen "Rot" an. Nun nehme ich mein CSS und kopiere es aus dem CSS-Ordner in den "Grau"-Ordner und in den "Rot"-Ordner. Im "Rot"-Ordner passe ich das Ding ein wenig an und zwar setze ich die Hintergrundfarbe für bestimmte Bereiche auf rot. Jetzt kann ich im Kopf meiner Seite das Stylesheet schon mal entfernen. Und was ich jetzt einfüge, ist ein "h:outputStylesheet"-Element. Dieses "outputStylesheet"-Element wird unser, als Ressource verpacktes Stylesheet referenzieren. Wir geben hier zuerst den Parameter "library" an. Der ist erstmal grau, und das, was ich referenzieren möchte, referenziere ich über Name, und da hätte ich gerne das Stylesheet mit dem Namen style.css. Damit ist die Einbindung des Stylesheets abgeschlossen. Wir können das einmal ausführen. Und wir werden feststellen, dass wir genau dieselbe Ausgabe, wie bisher hatten. Nun kann ich aber auch gerne das rote Stylesheet einbinden. Zu diesem Zweck ändere ich einfach die library auf "rot". Ich führe das Beispiel aus. Und wir haben jetzt ein rotes UI. Soweit ist das nicht sonderlich schwierig. Was wäre denn aber, wenn wir verschiedene Versionen unseres grauen Stylesheets vorhalten wollten? Dann wäre auch das kein Problem. Wir führen dort einen Rechtsklick auf den Ordner "Grau" aus, und legen hier einen neuen Ordner mit dem Namen 1_0 an. Das steht für Version 1.0. Jetzt kopieren wir das Stylesheet in diesen Ordner. Weitere Änderungen sind nicht nötig, jetzt haben wir die Versionierung aktiviert. Ändere ich jetzt die Bibliothek auf "Grau" und führe das Beispiel aus, habe ich ein graues Layout wieder. Nun kopiere ich diesen Ordner und benenne ihn in 2_0 um. Und jetzt werde ich die Schriftart ändern. Bisher wird hier Trebuchet MS verwendet. Nun gehe ich lieber auf eine andere Schriftart, Consolas. Nachdem ich das abgespeichert habe, brauche ich in meiner Applikation überhaupt keine Änderungen mehr vorzunehmen. Ich rufe einfach die Seite neu auf. Es kann hier eventuell mit dem Server Probleme geben, deswegen kann es durchaus sinnvoll sein, noch einmal neu zu deployen. Sobald dies erledigt ist, kann ich die Seite aufrufen. Wir stellen fest, es ist eine andere Schriftart, als zuvor im Einsatz. Der gleiche Einsatz funktioniert nun analog für ein Stylesheet. Ich lege hier eine weitere Ressource an, ich kann das gerne in die anderen Ressourcen mit integrieren, aber ich nenne die mal "scripts" und werde dort mein JavaScript verpacken. Nun kann ich in meiner Quelldatei auf diese Skriptangabe verzichten und füge hier ein "outputScript"-Element ein. Auch hier gibt es jetzt eine "library"-Angabe. Die "library" ist in dem Fall "scripts" und der Name ist "hello.js". Ich entferne die originale Skriptangabe, deploye die Seite neu und rufe das Beispiel auf. Das funktioniert nach wie vor. Auch hier funktioniert jetzt Versionierung. Wir legen einen neuen Ordner an, 1_0 und kopieren dort das bisherige Skript hinein. Jetzt kopieren wir den ganzen Ordner und fügen ihn als 2_0 wieder hinzu. Jetzt ändern wir was in dem Skript. Wir speichern, wir deployen sicherheitshalber noch einmal neu, Eclipse ist ja manchmal ein wenig anstrengend, was das anbelangt und rufen die Seite erneut im Browser auf. Nun bekommen wir bei dem Aufruf des JavaScripts die geänderte Ausgabe zu sehen, ohne dass wir im Quellcode der eigentlichen Seite eine Änderung vornehmen mussten. Sie sehen, es ist eigentlich sehr, sehr einfach, mit Ressourcen zu arbeiten. Man muss nur den richtigen Ansatz wissen. Ich empfehle Ihnen immer die Verwendung des /resources-Ordners, statt der festen Verdrahtung von Ressourcen. Spätestens, wenn Sie unterschiedliche Versionen im Einsatz haben, werden Sie dankbar für diesen Ansatz sein.

Java EE 7 Grundkurs

Lernen Sie die Grundlagen der Programmierung mit Java EE 7 verstehen und anwenden.

6 Std. 4 min (44 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Ihr(e) Trainer:
Erscheinungsdatum:07.11.2014
Laufzeit:6 Std. 4 min (44 Videos)

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!