ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
606
606
EMPFEHLEN
-
03.01.11 14:57 #1
- Registriert seit
- Aug 2007
- Beiträge
- 15
Hallo Zusammen,
ich setzte mich z.Z. mit JSF auseinander und möchte ein kleines Projekt aufsetzen.
Momentan zerbreche ich mir den Kopf wie ich am geschicktesten in JSF navigieren kann.
Ich möchte es gerne vermeiden immer von einer *.jsf Datei zur nächsten springe zu müssen, sondern hätte es gerne so dass in der URL immer "index.jsf" steht und dann der Content je nach Parameter geladen wird. (Der Grund ist der, dass ich nur Einmal den Rahmen definieren will und immer nur den Conten neu schreibe).
Um das zu erreichen habe ich meine Seite in mehrere Teile aufgeteilt und folgende "index.xhtml" erstellt.
Über das Bean "n" möchte ich dann die inkludierten Dateien dynamisch auswählen können. Um die Attribute des Bean "n" zu ändern verwende ich "CommandLinks" über die in der verbundenen action die Attribute geändert werden.HTML-Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <body> <ui:composition template="#{d.layout}"> <ui:define name="title">Das ist meine Indexseite</ui:define> <ui:define name="heading"> <ui:include src="#{n.headerFile}" /> </ui:define> <ui:define name="navigation"> <ui:include src="#{n.navigationFile}" /> </ui:define> <ui:define name="content"> <ui:include src="#{n.contentFile}" /> </ui:define> </ui:composition> </body> </html>
Hier ist die Headerdatei in der die CommandLinks stehen:
In der Action wird dann einfach der Setter für die Attribute des Beans "n" aufgerufen.HTML-Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core"> <body> <div id="menu"> <ul> <ui:repeat value="#{d.navigation.availableTargets}" var="target"> <li> <h:form id="commandLink"> <h:commandLink id="link1" value="#{target.displayName}" action="#{d.navigation.navigate}" immediate="true" > <f:param name="param_navigateTo" value="#{target.navigationId}" /> </h:commandLink> </h:form> </li> </ui:repeat> </ul> </div> </body> </html>
Und ich habe gehofft dass das ausreicht um eine andere Inhaltsseite zu laden.
Nur leider funktioniert das nicht so ganz wie ich mir das gedacht habe. Folgendes passiert jetzt wenn ich die CommandLinks verwende:- Angezeigt wird die "Seite 1".
- Ich Klicke auf den Button für "Seite 4".
- Es wird erneut die "Seite 1" angezeigt und die Attribute im Bean "n.*" werden mit den Werten der "Seite 4" gefüllt.
- Ich Klicke auf "Seite 2".
- Jetzt wird "Seite 4" Angezeigt und die Attribute im Bean "n.*" werden mit den Werten der "Seite 2" gefüllt.
- usw...
So wie ich das sehe wird die Attributänderung zwar durchgeführt aber erst im nächsten Aufruf auch berücksichtigt.
Und meine Frage ist:
Bin ich mit meinem Vorhaben volkommen auf dem Holzweg und ist eine Navigation nach diesem Schema gar nicht möglich ? Wie navigiert Ihr wenn ihr dynamische Menus haben wollt ? Muss mann zwangsweise diese "Navigation-Rules" verwenden ? Oder mach ich einfach eine kleinen Fehler ?
Sollte ich lieber doch je Contentseite eine xhtml-Datei erstellen und dann in jeder diese "<ui:composition template="#{d.layout}">" ausfüllen ?
Ich bin für jeden Tipp sehr dankbar da ich im moment irgendwie nen Hiernknoten habe.
Falls noch irgendwelche Informationen Fehlen reiche ich die gerne nach.
Danke und beste Grüße
KarlGeändert von KarlRannseier (03.01.11 um 14:59 Uhr)
-
10.01.11 10:14 #2
- Registriert seit
- Aug 2007
- Beiträge
- 15
Hallo zusammen,
ich habe für mein Problem jetzt eine andere Lösung gewählt.
Jetzt verwende ich zur Navigation h:commandButtons die per Outcome die nächste jsf-Datei definieren. Dadurch "springt" zwar die URL immer zwischen den Seiten, aber anderer Seits können jetzt je nach Unterseite auch unterschiedliche Bookmarks gesetzt werden. Und dadurch das der Outcome auch direkt interpretiert wird, kann ich mir die Definition von Navigation-Rules ersparen.
Warscheinlich war mein Ansatz "nur über ein Index.jsf" geheh zu wollen einfach nicht mehr der richtige für JSF.
Danke und gruß
Ähnliche Themen
-
in iFrame navigieren
Von arnonym im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 14.12.10, 10:46 -
Navigieren
Von Kalma im Forum Flash PlattformAntworten: 1Letzter Beitrag: 17.01.06, 20:09 -
Mit Sprungmenue in Seite navigieren
Von lordofscotland im Forum HTML & XHTMLAntworten: 2Letzter Beitrag: 17.08.05, 17:04 -
Navigieren wie bei maps.google.com
Von hhjjppww im Forum Flash PlattformAntworten: 5Letzter Beitrag: 05.06.05, 17:38 -
in Frame verlinken bzw. navigieren
Von messmar im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 19.05.05, 02:29





Zitieren
Login





