# JSF statisch oder dynamisch?



## JanHH (29. Feb 2012)

Hallo,

wie ist das eigentlich genau mit jsf-Seiten (facelets, seam 2, jsf 1.2).. sind die quasi fester, statischer Teil einer Webanwendung und werden genau einmal geparst und compiliert und sind dann ein unveränderbarer Bestandteil der Anwendung, oder kann man sie auch noch zur Laufzeit der Anwendung ändern und (was vor allem wichtig ist für meine Anwendung) später noch neue Seiten hinzufügen? Hab da grad eine Idee aber dafür wäre das wichtig.

Gruß+Danke
Jan


----------



## Nogothrim (1. Mrz 2012)

Das sollte kein Problem sein. Bei JSF wird doch gar nix kompiliert und Seiten werden auch erst geparst wenn sie aufgerufen werden.


----------



## vladimir75 (2. Mrz 2012)

Da ist eine interessante Beschreibung: 2.6 Lebenszyklus einer HTTP-Anfrage in JSF

Quelle: JSFAtWork, JSF 2.0 und Apache MyFaces









			
				http://jsfatwork.irian.at hat gesagt.:
			
		

> Phase 1: Komponentenbaum wieder herstellen (Restore View)
> Jede Ansicht einer JSF-Anwendung besteht aus Komponenten, die in Form eines Komponentenbaums organisiert sind. Die Abarbeitung einer Anfrage beginnt in der ersten Phase des Lebenszyklus mit dem Aufbau des Komponentenbaums.
> Trifft die erste Anfrage auf eine Ansicht ein, existiert der Komponentenbaum noch nicht und JSF baut ihn aus der Seitendeklaration neu auf. Kommt als Seitendeklarationssprache JSP zum Einsatz, leitet JSF die Anfrage an die hinter der Ansicht liegende JSP-Seite weiter. Diese wird abgearbeitet und bei jedem Antreffen eines neuen, noch nicht zu einer initialisierten Komponente gehörenden Tags wird eine neue Komponente erzeugt und mit den Attributwerten aus der JSP-Seite initialisiert. Facelets verfolgt eine ganz ähnliche Strategie und baut den Baum beim Parsen des zugrunde liegenden XHTML-Dokuments auf.
> In einem zweiten Durchlauf durch den Komponentenbaum wird die Seite dann gerendert. Eine initiale Anfrage auf eine Ansicht durchläuft also nur die erste und die letzte Phase des Lebenszyklus. Abbildung Initialzündung des Lebenszyklus zeigt diesen Ablauf.










			
				http://jsfatwork.irian.at hat gesagt.:
			
		

> Wenn eine Anfrage das zweite Mal dieselbe Seite anfordert, wird in JSF-Versionen vor 2.0 der Komponentenbaum komplett aus dem zuvor am Server oder am Client gespeicherten Zustand wieder hergestellt. Zum Komponentenbaum gehören natürlich nicht nur die Komponenten selbst, sondern auch Validatoren, Konverter und die "alten" Werte sowie sämtliche anderen Eigenschaften der Komponenten.
> In JSF 2.0 gibt es an diesem Punkt einen entscheidenden Unterschied zwischen JSP und Facelets. Mit JSP wird der komplette Komponentenbaum aus dem Seitenzustand rekonstruiert. Beim Einsatz von Facelets baut JSF hingegen zuerst die Ansicht aus der Seitendeklaration neu auf und verarbeitet erst dann den gespeicherten Zustand. Dieser neue Ansatz - auch Partial-State-Saving genannt - bietet einige Vorteile bezüglich Performance und Größe des Seitenzustands. Erste Tests zeigen, dass sich bei aktiviertem Partial-State-Saving die Größe des Seitenzustands ungefähr um den Faktor 3 reduziert.



Vladimir


----------



## JanHH (3. Mrz 2012)

danke.


----------

