# JSF: PanelGrid vs. Table



## miketech (26. Mai 2007)

Hi zusammen,

ich sitze grad an meinen ersten paar JSF-Seiten. Was ist denn hier so üblich: Verwende ich weiterhin <table><tr> usw. um das Layout der Seite festzulegen? Oder greife ich jetzt nur noch auf panelGrid usw. zurück?

Gruß

Mike


----------



## WeirdAl (26. Mai 2007)

Hi,
theoretisch ist das mit JSF 1.2 egal. Jedoch sollte man meiner Meinung nach, soweit es geht auf "normales" HTML verzichten, da Du durch die JSF Tags die Wiederverwendbarkeit deines Codes verbessern kannst. 
Ein Beispiel. Du baust eine Tabelle mit <h:dataTable> und in 3 Wochen entdeckst du Komponenten wie RichFaces oder Tobago, die auch eine verbesserte dataTable anbieten. Im optimalen Fall musst du jetzt nur dein <h:dataTable> durch zb <rich:dataTable> (=richFaces) ersetzen. Damit hast du in ein paar Minuten einen Teil deiner GUI ausgetauscht.

Soweit mal
Cu
Alex


----------



## miketech (26. Mai 2007)

Hi,

mir geht es vor allem darum das Layout festzulegen. Das mit der dataTable kann ich nachvollziehen. Aber ich möchte z.B. nun Links eine Navigationsleiste. Möchte also eine Tabelle mit zwei Spalten. Linke Spalte: Navigation. Rechte Spalte: Inhalt.

Ich arbeite im Moment mit JSF 1.1. 

Ich bräuchte hierfür eigentlich noch sowas wie Master Pages (aus ASP.NET). Das scheints in JSF 1.1 aber nicht zu geben. Gibt es sowas in JSF 1.2? Ist JSF 1.2 denn schon fertig? Dachte das wäre noch in Entwicklung oder war das JSF 2.0?

Also muss sagen: JSF rockt schon ziemlich 

Gruß

Mike


----------



## WeirdAl (26. Mai 2007)

Hi,
benutze zum Layouten büdde keine Tabellen sondern CSS (div-tags). 

Zu den JSF Versionen. JSF 1.1 ist recht alt. Jedoch wenn man mit .jsp Seiten und Tomcat 5.5, arbeitet kann man maximal diese Version nutzen, da die benötigte Servlet bzw, JSP Spec. für JSF 1.2 erst mit Tomcat 6 zur Verfügung steht.

Jedoch kann man mit Facelets bereits mit Tomcat 5.5 JSF 1.2 nutzen. Du musst lediglich anstatt jsp Seiten, xhtml Seiten erstellen, was durch die Nutzung der JSF Komponenten keinen großen Unterschied machen sollte. 
Zudem eignen sich Facelets sehr gut um Seitentemplates zu erstellen. Wenn zB alle deine Webseiten aus (links)Menüleiste | (rechts) Inhalt bestehen, kannst Du dies so in einem Template definieren. Wenn Du den Inhalt (eines Unterpunktes deines Menüs )ausprogrammierst, brauchst Du nur das Template einzubinden und schon hast Du eine Seite mit Menü und konkreten Inhalt.

Google am besten ein wenig. Es gibt mittlerweile viele JSF Seiten die Tutorials anbieten

Soweit mal
Alex


----------



## miketech (26. Mai 2007)

Hi,

oki danke. Nach Templates habe ich vor einer Weile schon ewig gesucht und immer nur gelesen, dass das Konzept der ASP.NET Master Pages so nicht machbar ist. Aber wie das nun mit Facelets aussieht habe ich nicht geschaut.

Dann schau ich mich mal etwas rum. Und mit den DIV-Tags: Noch nie mit DIV-Tags zum Layouten gearbeitet  Wußte nicht, dass man das neuerdings so macht. Ich dachte in meinem Fall verwende ich einfach eine Tabelle mit zwei Spalten 

Gruß

Mike


----------



## miketech (28. Mai 2007)

Ich nochmal,

also das ist echt super, danke für den Tipp! Ich arbeite nun mit DIVs und CSS und mit Facelets. Das klappt einfach super!

Das einzige: Ich habe noch ein Verständnisproblem, wie ich Facelets einordnen kann. Es ist ja offensichtlich nur eine Erweiterung für JSF oder? Ich stell mir das ganze so vor:

Wenn nun eine Anfrage kommt wird im Falle von der Endung .jsf die Anfrage an das FacesServlet weitergeleitet. Und normalerweise wird dann die Ausgabe an einen JSP-Handler geschickt, im jetzigen Falle aber an den Facelet-Handler. Dieser nimmt noch im Falle von Templates entsprechende Änderungen an der Seite vor und gibt den Rest aus.

D.h. Facelets ist nur ein ViewHandler für JSF, statt JSP. D.h. JSP sollte in Facelets nicht mehr funktionieren.

Stimmt das so in etwa?

Gruß

Mike


----------

