Jakarta Server Faces
![]() | |
Originalautor (en) | Sun Microsystems |
---|---|
Entwickler (en) | Eclipse Foundation |
Stabile Version | 2.3.2 / 20. August 2019 |
Vorschau -Version | 3.0.0 RC1 / 7. März 2020 |
Repository | |
Geschrieben in | Java |
Typ | Webanwendungs -Framework |
Webseite | Jakarta |
Jakarta Server Faces (JSF; Früher Javaserver Gesichter) ist a Java Spezifikation für das Gebäude Komponente-basierend Benutzeroberflächen zum Web Applikationen[1] und wurde als Standard durch die formalisiert Java Community -Prozess Teil der Java -Plattform, Enterprise Edition. Es ist auch ein MVC Web Framework Das vereinfacht die Konstruktion von Benutzeroberflächen (UI) für serverbasierte Anwendungen mit wiederverwendbaren UI-Komponenten in einer Seite.[2]
JSF 2.x verwendet Facelets als Standard -Vorlagensystem. Benutzer der Software können sich auch für Technologien verwenden, wie z. B. Xul, oder Java.[3] JSF 1.x verwendet Javaserverseiten (JSP) als Standard -Templating -System.
Geschichte
Im Jahr 2001 das Original Java -Spezifikationsanfrage (JSR) Für die Technologie, die letztendlich zu Javaserver -Gesichtern wurde, schlug vor, ein Paket mit dem Namen zu entwickeln javax.servlet.ui
[4]
Im Juni 2001, JavaRld Würde über das Design von "The Javaserver Faces API" (auch als "Moonwalk") als "Mondwalk") als "Anwendungsrahmen für das Erstellen webbasierter Benutzeroberflächen" berichten.[5]
Neueste Entwicklungen
Facelets (Die speziell für Java Server -Gesichter konzipiert wurde) wurde als offizielle View -Technologie für JSF 2.0 übernommen. Dies beseitigt die Lebenszyklus-Konflikte, die mit JSP existierten, und erzwang die Problemumgehungen von Java-Entwicklern.[6]
Die neuen JSF -Entwicklungen bieten auch eine breite Zugänglichkeit zu Java -Anmerkungen wie zum Beispiel @Managedbean
, @ManagedProperty
und @FacesComponent
Das beseitigt die Notwendigkeit Gesichter-config.xml,
In allen Fällen außer Rahmenerweiterung. Die Navigation wird ebenfalls vereinfacht, wobei die Notwendigkeit beseitigt wird Gesichter-config.xml
Navigationsfälle. Seitenübergänge können einfach aufgerufen werden, indem Sie den Namen der gewünschten Ansicht oder des gewünschten Ansichts oder der SCORBOT übergeben.
Die Hinzufügung von teilweise Zustandssparen und Dokumentobjektmodell (DOM) Aktualisierungen sind Teil der integrierten standardisierten Ajax Unterstützung.
Die neueste JSF-Version bietet integrierte Unterstützung für die Handhabung von Ressourcen wie Bildern, CSS und JavaScript, sodass Artefakte in Komponentenbibliotheken aufgenommen werden können, die in JAR-Dateien unterteilt oder einfach an einem konsistenten Ort innerhalb der Webanwendung teilgenommen haben. Dies beinhaltet die logische Benennung und Versionierung von Ressourcen.
JSF 2.0 enthält auch eine Reihe anderer Änderungen wie das Hinzufügen von Unterstützung für Ereignisse, separate Entwicklungs-, Inszenierungs- und Produktionsmodi, ähnlich wie Rails_env
in Rubin auf Schienenund erheblich erweitern die Standard -Komponenten.
Aktualisieren Sie die Geschichte
- JSF 2.3 (2017-03-28)-Hauptmerkmale: Suchausdrücke, extensionslose URLs, Bean-Validierung für vollständige Klassen, Push-Kommunikation mit Verwendung Websocket, verbesserte Integration mit CDI.[7]
- JSF 2.2 (2013-05-21)-Einführte neue Konzepte wie Staatelo Ansichten, Seitenfluss und die Möglichkeit, tragbare Ressourcenverträge zu erstellen.[8]
- JSF 2.1 (2010-11-22)-Wartung Release 2 von JSF 2.0. Nur eine sehr geringe Anzahl von Spezifikationsänderungen.[9][10]
- JSF 2.0 (2009-07-01)-Hauptveröffentlichung für Benutzerfreundlichkeit, Verbesserung der Funktionalität und Leistung. Fällt zusammen mit Java ee 6.
- JSF 1.2 (2006-05-11)-Viele Verbesserungen an Kernsystemen und APIs. Fällt zusammen mit Java ee 5. Erste Adoption in Java EE.
- JSF 1.1 (2004-05-27)-Bug-fix-Version. Keine Spezifikationsänderungen.
- JSF 1.0 (2004-03-11)-Erste Spezifikation veröffentlicht.
Wie es funktioniert
Basierend auf einer Komponentenbetrieben UI JavaServer Faces für Design-Model verwendet XML-Dateien aufgerufen Vorlagen anzeigen oder Facelets Ansichten. Das FACESSERVLET
Verarbeitet Anfragen, lädt die entsprechende Ansichtsvorlage, erstellt einen Komponentenbaum, verarbeitet Ereignisse und rendert die Antwort (normalerweise in der HTML -Sprache) auf den Client. Der Zustand der UI -Komponenten und andere Objekte des Umfangsinteresses werden am Ende jeder Anfrage in einem Prozess gerettet States raving (Hinweis: vorübergehend Stimmt) und bei der nächsten Schöpfung dieser Ansicht wiederhergestellt. Entweder der Client oder die Serverseite kann Objekte und Zustände speichern.
JSF und Ajax
Andere Namen | JSF RI |
---|---|
Originalautor (en) | Sun Microsystems |
Entwickler (en) | Eclipse Foundation |
Erstveröffentlichung | 3. März 2004 |
Stabile Version | 3.0.2 / 29. November 2021 |
Repository | Github |
Geschrieben in | Java |
Plattform | Jakarta ee |
Typ | Web Framework |
Lizenz | EPL-2.0 |
Webseite | eclipse-ee4j |
JSF wird oft zusammen mit verwendet Ajax, a Reiche Internetanwendung Entwicklungstechnik. Ajax ist eine Kombination aus Webentwicklungstechniken und -technologien, die es ermöglichen, reichhaltige Benutzeroberflächen zu erstellen. Die Benutzeroberflächenkomponenten in Mojarra (der JSF Referenzimplementierung[11]) und Apache MyFaces wurden ursprünglich nur für HTML entwickelt, und Ajax musste über JavaScript hinzugefügt werden. Dies hat sich jedoch geändert:
Weil JSF mehrere Ausgangsformate unterstützt, Ajax-Inable -Komponenten können problemlos hinzugefügt werden, um sich zu verbessern Benutzeroberflächen Erstellt mit JSF. Die JSF 2.0-Spezifikation bietet eine integrierte Unterstützung für AJAX, indem der AJAX-Request-Lebenszyklus standardisiert und einfache Entwicklungsschnittstellen für AJAX-Ereignisse bereitgestellt wird. Die Spezifikation ermöglicht es einem vom Client ausgelösten Ereignis, die Validierung, Konvertierung und Methodenaufruf durchzuführen, bevor das Ergebnis über ein XML -DOM -Update an den Browser zurückgegeben wird.
JSF 2 beinhaltet Unterstützung für anmutiger Abbau Wenn JavaScript ist im Browser deaktiviert.
AJAX-fähige Komponenten und Frameworks
Die folgenden Unternehmen und Projekte bieten AJAX-basierte JSF-Frameworks oder Komponentenbibliotheken an:
- Apache MyFaces - Das Apache Foundation JSF -Implementierung mit AJAX -Komponenten
- Backbase Enterprise Ajax - JSF Edition – Ajax Framework
- Stiefel Open Source JSF -Framework basierend auf Bootstrap
- IBM Notizen – XPages
- Eisdeflächen -Open-Source, Java JSF Extension Framework und Reich Komponenten, Ajax ohne JavaScript
- Jboss Richfaces (abgeleitet von und ersetzt Ajax4jsf)-AJAX-fähige JSF-Komponenten für Layout, Datei-Upload, Formulare, Eingänge und viele andere Funktionen. Es erreichte im Juni 2016 sein Lebensende.
- Allgemeine -Open-Source JSF Utility Library
- OpenFaces - Ajax Framework mit JSF -Komponenten
- Orakel ADF sieht sich einem reichen Kunden gegenüber – Oracle Application Development Framework
- Primefaces - Ajax Framework mit JSF -Komponenten
- Sonne Java Blueprints Ajax -Komponenten
- ZK - Ajax Framework mit JSF -Komponenten
Kritik
Thoughtworks, 2014
In ihrem Januar 2014 Technologieradar Veröffentlichung, Gedankenwerke schrieb:[12]
Wir sehen weiterhin die Teams mit JSF - Javaserver -Gesichtern - in Schwierigkeiten geraten und empfehlen Ihnen, diese Technologie zu vermeiden. Teams scheinen JSF zu wählen, da es sich um einen JEE -Standard handelt, ohne wirklich zu bewerten, ob das Programmiermodell ihnen passt. Wir denken, JSF ist fehlerhaft, weil es versucht, abstrahieren Html, CSS und Httpgenau umgekehrt, was modern ist Webrahmen tun. JSF versucht wie ASP.NET WebForms zu erstellen Zustand Zusätzlich zum staatenlosen Protokoll HTTP und verursacht eine ganze Reihe von Problemen, die gemeinsam mit dem serverseitigen Status einen gemeinsamen serverseitigen Status beinhalten. Wir sind uns der Verbesserungen bei JSF 2.0 bewusst, denken aber, dass das Modell grundlegend gebrochen ist. Wir empfehlen Teams, einfache Frameworks zu verwenden und Web -Technologien zu akzeptieren und zu verstehen, einschließlich HTTP, HTML und CSS.
Widerlegung
Im Februar 2014 reagierte Çağatay Çivici (Primefaces Lead) auf Denkeworks -Kritikpunkte in einem Posten mit dem Titel " JSF ist nicht mehr das, was Ihnen gesagt wurde. Çivici argumentiert, dass Verbesserungen in JSF im Laufe der Jahre viele Funktionen bieten, die sich mit moderner Webentwicklung befassen und die Möglichkeit bieten, Ihr eigenes JavaScript, HTML und CSS zu schreiben. Auch in Bezug auf den Staat schrieb Çivici:[13]
JSF ist von Natur aus ein staatlicher Rahmen, und staatlich macht Webanwendungen einfach zu entwickeln. Mit verbesserten Statusmanagementtechniken, die in JSF 2.0+ (z. B. den Staatlosen, partieller Zustandseinsparung) eingeführt wurden, kann JSF ebenfalls skalieren.
Dzone, 2014
In dem Artikel im November 2014 auf der DZone -Website mit dem Titel "Warum Sie JSF vermeiden sollten", schrieb Jens Schauder:[14]
Facelets, die bevorzugte Präsentationstechnologie von JSF, befasst sich mit dem ersten Anblick wie einer gewöhnlichen Templating -Technologie wie dem guten alten JSP oder Thymeleaf. Aber wenn Sie näher schauen, wird der Horror offensichtlich. An derselben Stelle, an der Sie Ihre HTML strukturieren, platzieren Sie auch die Logik, welche Teile der Benutzeroberfläche über eine Aktion aktualisiert werden sollen. Eine klare Verletzung der Trennung von Bedenken Prinzip in meinem Buch. Noch besser ist das unmittelbare Attribut, das den Lebenszyklus der Serverseite verändert! Und wenn dies nicht ausreicht, macht es es auf unterschiedliche Weise, je nachdem, auf welchem Tag Sie es verwenden. Sie können solche Sachen nicht erstellen.
TheServerside, 2016
Im Februar 2016 die Unternehmenswebsite der Enterprise Java Community Theserverside veröffentlichte einen Artikel, der gegen die Verwendung von JSF empfohlen wurde, dessen Verwendung die Qualität des Endprodukts beeinträchtigen könnte. Der Artikel wurde aus fünf Gründen aufgeführt:[15]
- Einfache Aufgaben werden schwierig;
- JSF fehlt Flexibilität;
- Die Lernkurve ist steil;
- Inkompatibilität mit Standard -Java -Technologien; und
- Primitive Ajax -Unterstützung.
Verweise
- ^ Javaserver steht vor der Technologie
- ^ "JSF 2.0 Tutorial". Mkyong. 2010-12-12. Abgerufen 2017-04-28.
JavaServer Faces (JSF) 2.0 ist ein MVC -Web -Framework, das sich auf das Erstellen von Benutzeroberflächen (mit mehr als 100 Bereitschafts -UI -Tags) für die Java -Webanwendung konzentriert und wiederverwendbare UI -Komponenten einfach zu implementieren macht.
- ^ Novdl: Schreiben Sie Ihre JSF -Ansichten in reinem Java
- ^ "JSR 127: Javaserver Gesichter". Java Community -Prozess. Oracle Corporation. 2014. Abgerufen 2014-08-05.
2.6 Gibt es einen vorgeschlagenen Paketnamen für die API -Spezifikation? (d.h.
- ^ Armstrong, Eric (6. Juni 2001). "Java Web Services: Was ist nicht zu mögen?". JavaRld. Abgerufen 2020-07-27.
Der JavaServer sieht API (auch bekannt als Moonwalk) verspricht, eine elegante Lösung für die Implementierung interaktiver Funktionen für inkompatible Browser zu bieten. […] Die JavaServer Faces API entworfen von einem Team von Amy Fowler, Sun AWT und Swing Architect, bietet eine Sammlung von GUI -Tools, die auf gemeinsamen Browsern mit Standard -HTML ausgeführt werden.
- ^ Bergsten, Hans. "Verbesserung von JSF durch Dumping JSP". O'Reilly. Abgerufen 18. August 2011.
- ^ Tijms, Arjan. "Was ist neu in JSF 2.3?". Überlegungen eines Java EE -Entwicklers. Abgerufen 2020-07-27.
- ^ JSF 2.2 (JSR-344) ist endgültig | TechScouting durch die Java News. Blog.oio.de. Abgerufen am 2020-07-27.
- ^ JSR 314 Javaserver Faces 2.1 JSF 2.1 | TechScouting durch die Java News. Blog.oio.de. Abgerufen am 2020-07-27.
- ^ Bosch, Andy (2010-11-29). "War ist neu in JSF 2.1" (auf Deutsch). IT-Republik.de. Abgerufen 2013-02-19.
- ^ Lubke, Ryan (5. Dezember 2007). "Project Mojarra - Der JSF RI erhält einen Codenamen". Ryan Lubkes Blog. Sun Microsystems. Oracle Corporation. Archiviert von das Original Am 2017-04-07.
- ^ "Technologieradar" (PDF). Gedankenwerke. Januar 2014. p. 12. archiviert von das Original (PDF) am 2016-04-07. Abgerufen 2014-01-30.
- ^ "JSF ist nicht mehr das, was Ihnen gesagt wurde.". Primefaces. 2014-02-12. Abgerufen 2020-11-24.
- ^ Jens Schauder (November 2014). "Warum sollten Sie JSF vermeiden". Dzone.
- ^ McKenzie, Cameron (16. Februar 2016). "Fünf Nachteile zur Auswahl von JSF als Webanwendungs -Framework". Theserverside. Abgerufen 22. Dezember, 2020.