JavaServer Faces
JavaServer Faces (JSF) ist ein Benutzerschnittstellenframework bzw. eine Anwendungsprogrammierschnittstelle (API), das bzw. die die Entwicklung von Java™-basierten Webanwendungen vereinfacht.
- Benutzerschnittstelle ohne großen Aufwand aus einer Reihe wiederverwendbarer Benutzerschnittstellenkomponenten erstellen.
- Migration von Anwendungsdaten auf die und von der Benutzerschnittstelle vereinfachen.
- Verwaltung des Benutzerschnittstellenstatus bei Serveranforderungen unterstützen.
- Einfaches Modell bereitstellen, mit dem clientgenerierte Ereignisse mit serverseitigem Anwendungscode verbunden werden können.
- Angepasste Schnittstellenkomponenten für die Erstellung und Wiederverwendung unterstützen.
Die Apache MyFaces-Implementierung ist in WebSphere Application Server enthalten und stellt die Grundlage des für JSF verwendeten Codes dar.
Die Version der JSF-Laufzeitumgebung, die im Produkt enthalten ist, befindet sich an der gewöhnlichen Position der Laufzeitbibliothek und steht allen Webanwendungen zur Verfügung, die JSF-APIs verwenden. Das JSF-Servlet wird so geladen, als wäre die Laufzeitumgebung im Paket der Webanwendung enthalten. Die im Paket enthaltene Version enthält Erweiterungen für eine bessere Integration mit dem integrierten Annotationsscanning und anderen Laufzeitkomponenten von WebSphere Application Server.
Die spezifikationsbezogenen Klassen des Typs javax.faces.* für JSF und die von IBM® geänderte Version der JSF-Implementierung von Apache MyFaces sind im Paket der Laufzeitumgebung enthalten.
Gewöhnlich integrierten Webanwendungen, die diese API bzw. dieses Framework verwenden, die JSF-API und die JAR-Dateien (Java-Archiv) für die Implementierung in ihre WAR-Datei (Web Application Archive, Webanwendungsarchiv). Dies ist nicht erforderlich, wenn diese Webanwendungen in WebSphere Application Server implementiert und ausgeführt werden. Sie müssen lediglich diese JAR-Dateien und alle JSTL-JAR-Dateien aus der WAR-Datei entfernen. Da JavaServer Faces 2.2 jedoch Teil der Java EE-Plattform ist, ist im Paket mit der Webanwendung keine Implementierung von JavaServer Faces enthalten, wenn die Webanwendung in einem Web-Container ausgeführt wird, der mit der Java EE-Technologie kompatibel ist. Wenn eine Implementierung von JavaServer Faces im Paket einer Webanwendung enthalten ist, wird sie ignoriert, da die von der Plattform bereitgestellte Implementierung von JavaServer Faces immer Priorität hat.
Die JSF-Laufzeitumgebung für WebSphere Application Server bietet keine Unterstützung für die Verwendung eines einzigen Klassenladers (auch Klassenladeprogramm) für die gesamte Anwendung, weil während der FacesConfig-Initialisierung ein einziger Klassenlader für jedes JSF-Modul erforderlich ist. Diese Unterstützung ist nicht verfügbar, wenn die Anwendung mehrere Webmodule enthält und eines dieser Module ein JSF-Modul ist. Deshalb müssen Sie mehrere Klassenlader verwenden, wenn die Anwendung mehrere Webmodule und mindestens ein JSF-Modul enthält.
Wenn mehrere Implementierungen von JSF verwendet werden, bestimmt die JSF-Engine von WebSphere Application Server, ob SUN RI oder Apache MyFaces aus der Laufzeitumgebung des Anwendungsservers verwendet wird. Nachdem Sie JSF-Engine die zu verwendende Implementierung festgelegt hat, wird die entsprechende Listenerklasse beim Web-Container registriert. Es ist nicht erforderlich, com.sun.faces.ConfigureListener oder org.apache.myfaces.StartupConfigureListener der Datei web.xml hinzuzufügen.
Wenn Sie eine JSF-Implementierung eines anderen Anbieters verwenden, die nicht im Produkt enthalten ist, lassen Sie MyFaces konfiguriert, fügen Sie den erforderlichen Listener des anderen Anbieters der Datei web.xml hinzu und fügen Sie die JAR-Dateien des anderen Anbieters dem Webmodul als isolierte gemeinsam genutzte Bibliothek hinzu. Bei der Verwendung einer isolierten gemeinsam genutzten Bibliothek werden die Versionen der JSF- bzw. JSTL-Klassen der Webanwendung vor dem Anwendungsserver geladen.