# JSF und Layouts



## miketech (2. Aug 2007)

Hi,

ich habe ein Verständnisproblem bei JSF: Ich dachte eigentlich, dass ich im JSF-File keinerlei Layout-Angaben haben soll. Es gibt ja das Konzept der Renderer und daher dachte ich solle ich auf HTML im JSF verzichten. Aber ich weiß einfach nicht, wie ich sonst Layouts gestalten soll. Ohne z.B. <DIV> oder einem Link auf CSS, was ja standard (X)HTML ist komme ich da nicht weit. Wie soll das denn mit verschiedenen Renderern funktionieren? Lässt man diese Tags dann einfach weg und interpretiert nur die JSF-Tags? Generell habe ich noch nicht gehört, dass man andere Renderer einsetzt.

Genauso verhält es sich mit der Verknüpfung mit JavaScript: Es gibt ja auch onClick-Attribute etc, die ich dann mit JavaScript verbinden kann. Ist das hui oder pfui? Wenn ich eine Webseite gestalte, dann möchte ich natürlich an einigen Stellen etwas JavaScript verwenden, was eventuell nicht von ajax4jsf abgedeckt ist. Ist das dann so gedacht, dass ich hier einfach meinen JavaScript-Code (oder Funktionsaufrufe) reinschreibe? Oder löst man das anders? Sonst hab ich ja schon wieder etwas eingebaut, was ja nur für (XHTML) sinnvoll ist. Wenn ich z.B. einen PDF-Renderer habe interessiert mich dieses JavaScript ja nicht sonderlich.

Hab ich hier einen Denkfehler oder ist das einfach etwas schwierig zu trennen? Oder ignoriert man das Konzept mit den Renderern und baut einfach seine Seite mit JSF-Tags und bisserl HTML-Tags und JavaScript dazwischen?

Gruß

Mike


----------



## Gumble (2. Aug 2007)

zum Thema Layout: ich habe die Erfahrung gemacht, dass html code im JSF nicht wirklich funktioniert. Von daher hab ich alles in <hanelGrid> gesteckt - wobei gewisse Teile wie Header, Menue oder Footer in subViews ausgelagert werden konnten. Ich glaube mich zu erinnern, dass es auch irgendwo einen Schalter gab, mit dem man dem Renderer sagen kann, ob er das panelGrid in DIVs oder TABLEs uebersetzen soll. Optik per CSS (style=...).


----------



## WeirdAl (2. Aug 2007)

Hi,
unter JSF 1.1 kannst du mit dem verbatim-tag html in deinen Code reinpacken.
Mit JSF 1.2 brauchst Du dieses Tag dann nicht mehr.

@Miketech:
Ich halte das so, alles was nur die View verändert ist "hui". Sobald Du irgendwelche Logik reinbaust, wie berechnen von Daten oder anderes Zeug was normal nichts in der View zu suchen hat, ist das "pfui".
Meiner Meinung nach kann man auf jeden Fall div Tags benutzen und über styles seine Komponenten innerhalb einer CSS konfigurieren.
Bei den Javascriptsachen musst Du nur immer beachten, das zB. bei actions onXXXX Geschichten immer vor der Action-Methode ausgeführt wird.

Cu
Alex


----------



## miketech (4. Aug 2007)

Hi,

d.h. ich darf auch HTML-Tabellen für das Layout verwenden? Angeblich soll das ja heutzutage alles mit CSS gemacht werden, aber es gibt einfach Layouts, die sich imho deutlich leichter und bequemer mit Tabellen erstellen lassen.

Widerspricht das dann aber nicht dem Konzept mit den Renderern? Oder kümmern die sich ausschließlich um die JSF Tags und ignorieren die anderen?

Gruß

Mike


----------



## WeirdAl (4. Aug 2007)

Hi,
ach stimmt, ich habe so viel geschrieben und das Thema Layout irgendwie übersehen  . Layoute deine Seite auf jeden Fall mit CSS. Das hat den großen Vorteil, das du nachträgliche Änderungen am Design fix über das CSS-file erledigen kannst und nicht wieder an dem JSP/XHTML Code rumspielen musst.


----------



## Guest (4. Aug 2007)

bitte korrigieren wenn ich falsch liege

die ganze idee hinter den renderen liegt doch eigentlich darin, dass diese dem jeweiligen zielbrowser angepasste tags generiern. so kann man dieselbe seite sowohl für einen html browser als auch für einen wml browser verwenden, nur indem man andere renderer verwendet..... wenn man jetzt also css, html und was auch immer direkt in die seite baut, verspielt man sich diese flexibilität....

greetz


----------



## Flokati (19. Nov 2007)

Das Thema interessiert mich auch!
Wäre schön, wenn sich noch jemand dazu äußern könnte!


----------

