# JSF/MyFaces und Navigation



## tintifaxe (8. Nov 2006)

Hallo,

Ich habe mich in MyFaces reingearbeitet und es gefällt mir sehr gut. Leider finde ich die Navigation teilweise recht umständlich.

Wie binde ich am besten mit MyFaces dynamisch JSP Seiten ein?

Beispiel:

Ich habe eine Main.jsp seite und includiere in dieser eine header.jsp, menu.jsp und eine content.jsp. Ich möchte je nach Benutzeraktionen die content.jsp wechseln.

Ich habe es bis jetzt über die Standard Taglibs Library gelöst. Ich finde diese Lösung aber sehr umständlich weil dann die Main.jsp bald voller komplexer und verschachtelter Tags ( <c:when> <c:if> und <c:import> ) ist.

Gibt es hierzu eine einfachere / bessere Lösung?

mfg,

tintifaxe


----------



## SilentJ (8. Nov 2006)

Hi,

kann man das nicht durch die navigation-rules abhandeln, die in der faces-config.xml definiert werden?


----------



## tintifaxe (9. Nov 2006)

Alles was ich über die navigation-rules in erfahrung bringen konnte war, dass man hier festlegen kann wie man von einer Seite auf eine andere Seite kommt. 

Mit den Navigation-Rules könnte ich daher immer nur auf eine Seite weiterleiten. Ich müsste für jeden Content der in meiner Seite vorkommt ein eigene jsp-seite machen. Das dynamische Einbinden des Inhalts wäre dann hinfällig. 

Da ich aber für jeden Content nicht eine ganze Seite machen möchte sondern nur den Inhalt auswechseln will bräuchte ich dafür eine Lösung. 

Was ich suche ist eine Methodik mit der ich das relativ einfach bewältigen kann.


----------



## Entry (14. Nov 2006)

ich benutze dazu tiles. myfaces.apache.org/tomahawk/tiles.html funktioniert wunderbar. du kannst auch facelets benutzen. https://facelets.dev.java.net/

mfg


----------



## tintifaxe (13. Dez 2006)

Ich habe mir jetzt Tiles und FaceLets angeschaut.
Leider hab ich das Ganze scheinbar noch nicht so recht verstanden. Ich kann zwar Seiten Layouts erstellen. Ich weiß dennoch nicht, wie ich den Inhalt dynamisch wechseln kann. 

Hier bleibt für mich das Gleiche Problem bestehen. Ich defniere ein Layout mit Header Content und Footer, aber wie der Content zur Laufzeit auszuwechseln ist bleibt nach wie vor offen.

Bin für weitere Tips dankbar.


mfg,

tintifaxe


----------



## KSG9|sebastian (13. Dez 2006)

Warum willst du denn die JSP-Seiten dynamisch wechseln?
Du hast ne JSP für News, Gästebuch, Forum u.s.w., aber das hat doch nix mit dynamischem wechseln von JSPs zu tun.
Von welcher JSP du nach welcher anderen kommst wird mit den navigation-rules in der faces-config festgelegt.


----------



## stofftier (15. Dez 2006)

Ich glaube tintifaxe meint was anderes. Er will nicht tausend einzelne JSP-Seiten sondern nur eine einzige 
wo jeweils ein anderer Content inkludiert wird. Hat er ja auch so geschrieben...
Und das kann man meines Wissens nicht über navigation-rules klären, denn die Seite bleibt immer die selbe, es soll sich ja lediglich ein teil der Seite je nach Bedarf ändern...

Interessant wäre es schon mal zu wissen ob und wie es anders als mit dutzenden <c:if etc das geht, denn ich hab es bisher auch immer nur so gemacht.

Gruß,
stofftier


----------



## GastVEB (12. Jan 2007)

dynamisch den Inhalt einer Seite auszutauschen, kann man mit AJAX machen. Wobei das eigentlich eher dazu gedacht ist , kleine Teile einer Seite zu aktualisieren bzw auszutauschen und nicht die ganze Siete.


----------



## Gast (18. Jan 2007)

hört auf Entry!!! Er hat doch schon alles geschrieben: Die Lösung ist Tiles. Man definiert layouts und einzelne Seite inner xml-Datei und in den navigation-rules wechselt man nicht mehr zu einer anderen jsp, sondern zu einzelnen seiten-definitionen aus tiles-def.xml.


----------



## KSG9|sebastian (18. Jan 2007)

Würd dir Facelets empfehlen.
Im Template definierst du Fragmente. In der Seite "überschreibst" du die Definitionen dann mit Inhalt.
Wenn du einem Treeitem eine action verpasst und action als navigation-rule anlegst funktioniert das wunderbar.


----------

