JSF gegen Facelets gegen JSP [duplicate]

Lesezeit: 4 Minuten

Ich kann anscheinend keine klare Antwort auf den konkreten Unterschied zwischen Java Server erhalten Gesichter gegen sog Facetten. Kann mir jemand eine klare Antwort geben?!?

Ich verstehe auch, dass entweder JSF oder JSP verwendet werden können, um dynamische Webseiten zu erstellen, aber zwei scheinbar widersprüchliche Details verwirren mich. Ich habe beides gehört:

  1. Dieses JSF ist ein Ersatz für JSP; und

  2. JSF und JSP bilden verschiedene Teile der Aussicht im Web-Tier-MVC-Paradigma von Java

Also, was ist es? Die Logik schreibt vor, dass es mit ziemlicher Sicherheit nicht beides sein kann!

Benutzer-Avatar
Michael Borgwart

  • JSF ist ein standardisiertes Java-Framework für Web-UIs, das auf einem MVC-Muster basiert
  • JSPs sind ein (viel älterer) Standard zum Generieren von Webseiten aus Vorlagen – diesen kann als Ansicht in einer JSF-Anwendung verwendet werden, aber auch getrennt von JSF.
  • Facelets sind eine alternative Ansichtstechnologie, die auf reinen XML-Vorlagen (keine Skriptlets) basiert und mit Version 2 des JSF-Standards eingeführt wurde. Sie können nur in einer JSF-Anwendung verwendet werden.

Schauen wir uns vor diesem Hintergrund Ihre widersprüchlichen Aussagen an:

Dieses JSF ist ein Ersatz für JSP; und

Nicht ganz richtig, da JSF JSPs für seine Ansicht verwenden kann (und vor JSF 2 musste). JSF-Apps, die Facelets verwenden, können jedoch als Ersatz für JSP-basierte Technologien angesehen werden.

JSF und JSP bilden verschiedene Teile von View in Javas MVC-Paradigma auf Webebene

Völlig falsch – JSF deckt das gesamte MVC-Muster ab (obwohl es sich mit EJBs überschneiden kann, da beide auf Annotationen basieren, die in derselben Klasse gemischt werden können).

  • @Pam: Nein, “Scriptlets” bedeutet Java-Code-Snippets, die in eine JSP eingebettet sind. Diese waren lange Zeit verpönt, mit Tag-Bibliotheken und EL als sauberer Ersatz. Der Facelet-Standard eliminiert sie vollständig. Backing Beans (oder EJBs, die ihre Rolle übernehmen) sind immer noch ein wesentlicher Bestandteil einer Facelets-basierten JSF-App.

    – Michael Borgwardt

    27. Januar 2011 um 11:49 Uhr

  • Es sei darauf hingewiesen, dass Sie Facelets genauso gut in JSF 1.2 verwenden können, wenn Sie nur die entsprechenden Bibliotheken hinzufügen.

    – Joeri Hendrickx

    27. Januar 2011 um 12:41 Uhr

  • Ahhhh….. also: FaceletServlet ist der Controller, das Facelet ist die XHTML-Ansicht und das Modell ist eine Bean. Drei letzte Fragen: (1) Ich nehme an, dass man, wie bei Servlets, das FaceletServlet ableiten und die service(HttpRequest,HttpResponse)-Methode überschreiben muss, ja? (2) Schreiben Best Practices 1 FaceletServlet pro Webseite vor? Ich kann es mir nicht anders vorstellen! Und (3) ist das Modell ein @ManagedBean (EJB), ein JavaBean oder kann es irgendein POJO sein? Vielen Dank!

    – Eugie

    27. Januar 2011 um 14:28 Uhr

  • @Pam: 1+2) Sie beschäftigen sich normalerweise nie direkt mit Servlets in einer JSF-App. Stattdessen haben Sie eine Konfiguration in der faces-config.xml sowie Anmerkungen zu verschiedenen Klassen, die steuern, was das FacesServlet tut. 3) @ManagedBean ist eine JSF-spezifische Anmerkung. Seit JEE 6 können Sie auch EJBs direkt verwenden (die unterschiedliche Annotationen haben), aber beides sind heutzutage POJOs, die auf dem JavaBean-Standard basieren. Wenn Sie keine Annotationen verwenden möchten, können Sie die verwalteten Beans in faces-config.xml deklarieren, aber JSF muss mitgeteilt werden, was sie sind irgendwo.

    – Michael Borgwardt

    27. Januar 2011 um 14:44 Uhr


  • Danke Michael – wenn Sie sich also nicht direkt mit Servlets in JSF befassen, wo platzieren Sie die Geschäftslogik (die Steuerung)? Geht das in die “Backing Bean”? Und gibt es nur eine face-config.xml-Datei pro JSF-Anwendung, oder bekommt jede Webseite (Facelet) ihre eigene XML-Konfiguration? Nochmals vielen Dank … Ich schwöre, ich fange an, das zu verstehen!

    – Eugie

    27. Januar 2011 um 14:49 Uhr

Aus Wikipedia-Artikel (JSF)

JSF ist ein anfragegesteuertes MVC-Web Rahmen basierend auf einem komponentengesteuerten UI-Designmodell unter Verwendung von XML-Dateien, die als Ansichtsvorlagen bezeichnet werden, oder Facetten Ansichten.

JSF ist ein Webframework und Facelet ist eine Ansichtsvorlage für JSF

Aus Wikipedia-Artikel (JSP)

JavaServer-Seiten (JSP) ist eine Java-Technologie, die Softwareentwicklern hilft, dynamisch generierte Webseiten basierend auf HTML, XML,

Schau dir auch dieses Thema an Unterschied zwischen jsf und jsp

  • Also, wenn ich das richtig verstehe: JSF besteht aus allen Komponenten-Tag-Bibliotheken, Konverterklassen, Validator-Klassen usw., während das “Facelet” einfach die XHTML-Datei ist, die diese Komponenten-Tags verwendet und an die Backing-Beans bindet?

    – Pam

    27. Januar 2011 um 11:44 Uhr

Benutzer-Avatar
Yster

Java-Serverseiten (JSP) ist eine Java-Technologie, die es Webentwicklern und -designern ermöglicht, informationsreiche, dynamische Webseiten, die vorhandene Geschäftssysteme nutzen, schnell zu entwickeln und einfach zu pflegen. Die JSP-Technologie trennt die Benutzeroberfläche von der Inhaltsgenerierung, sodass Designer das gesamte Seitenlayout ändern können, ohne den zugrunde liegenden dynamischen Inhalt zu ändern.

Facetten ist die erste Nicht-JSP-Seitendeklarationssprache, für die sie entwickelt wurde JSF (Java Server Faces) das JSF-Entwicklern im Vergleich zu JSP ein einfacheres und leistungsfähigeres Programmiermodell zur Verfügung stellte. Es behebt verschiedene Probleme, die in JSP für die Entwicklung von Webanwendungen auftreten.

Hier ist eine Tabelle, die die Eigenschaften von Scriplets und Facelets vergleicht:

Geben Sie hier die Bildbeschreibung ein
Quelle

Ich habe nach einer Antwort auf die gleiche Frage gesucht. Diese Links fand ich sehr hilfreich:

Ein Beispiel für ein JSP-Anwendungsmodell:
http://netbeans.org/kb/docs/javaee/ecommerce/design.html#architecture

Grundlegende JSF-Konzepte, einige anhand von Beispielen:
http://netbeans.org/kb/docs/javaee/ecommerce/conclusion.html#framework

1305070cookie-checkJSF gegen Facelets gegen JSP [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy