JSF Navigation auf vorhergehende Seite(n)

Status
Nicht offen für weitere Antworten.

freez

Top Contributor
Hallo,

ich habe folgende Navigationsstruktur (mit den NavigationRules in der faces-config):

Index.jsf -> Setting1.jsf -> Setting2.jsf -> Setting3.jsf -> Setting4.jsf ->Uebersicht.jsf

In den Settings nimmt der User Einstellungen vor und in der Übersicht werden alle Einstellungen noch einmal zusammengefasst. Nun möchte ich dem User auf der Übersicht die Möglichkeit geben seine Einstellungen noch mal zu überarbeiten. Hat der User die Einstellungen überarbeitet soll er wieder zurück zu der Übersicht springen. Was sagen eure best practise Erfahrungen, wie ich das lösen sollte:

- Mache ich kopien von Setting1 - 4 und ändere die Navigationslinks, damit der User von der Übersicht zu den Kopien springt und dann wieder zur Übersicht kommt (Nachteil: doppelte Seiten -> doppelte Arbeit beim Überarbeiten)
- ich verweise von der Uebersicht auf die vorhandenen Setting Seiten. Aber wie springe ich dann auf Uebersicht und nicht zur nächsten Setting Seite?
 
M

maki

Gast
Wenn ich faul wäre, würde ich in den settings seiten je zwei buttons anbieten: einen um zum nächsten settings dialog zu kommen, und einen um zur Übersicht zu kommen.

Wahrscheinlich ist ein zusätzlicher Cancel/Back Button auch nicht verkehrt.
 
M

maki

Gast
Kann ich dir nicht sagen ;) war noch nie anders...

Du könntest auch jedesmal eine neue JSP anlegen, wäre imho aber nur umständlich...

Du könntest mit dem rendered oder disabled attribut und dem zustand deiner Bean steuern, wann welche Buttons angezeigt/aktiviert werden.
 

freez

Top Contributor
Oh ja, das mit dem rendered Attribut ist n interessanter Ansatz. d.h. ich mache 2 Buttons rein, einen für die nächste Setting Seite und einen für die Übersicht, und je nachdem von wo ich komme schalte ich das rendered Attribut um.
Habe ich das soweit richtig verstanden?

Gibt es sonst noch Ansätze, wie man sowas löst? Interessant wäre es auch, wenn man da was mit den Navigation Rules machen könnte.
 
M

maki

Gast
Klar, musst nur einen anderen outcome spezifizieren mit anderem Ziel.

Auch dafür brauchst einen eigenen Button, auch das könnte man mit rendered lösen.
Oder aber deine Bean gibt einen anderen outcome zurück, abhängig vom Status.
 

freez

Top Contributor
Ich habe mich noch etwas in den weiten des Internets umgeschaut. Im Endeffekt werde ich es wohl so machen, wie du es hier geschrieben hast:
Oder aber deine Bean gibt einen anderen outcome zurück, abhängig vom Status.

Ich habe auch in Erwägung gezogen einen Filter dafür zu schreiben. Aber ich glaube das ist doch zu viel des Guten! Vielleicht kommt ja irgendwann in späteren JSF Versionen sowas mal zum Konfigurieren (für die faces-config z.B.)
 
M

maki

Gast
Filter???
Brauchst du doch nicht:

Gib deinem commandlLink/commandButton doch einfach nur eine Action an:
Code:
<h:commandButton
    id="commandButton_new_record"
    value="#{resources.button_new_record}"
    action="#{DeineBean.deineAction}" 
...

deine Bean braucht dann nur noch eine Methode mit folgender signatur:
Code:
    public String deineAction() {

    ...

    return "einOutcomeAusDeinenNaviRules";
    }

Es wäre wirlich gut, wenn du dich mehr in JSF reinarbeiten würdest, bevor du anfängst große Apps zu schreiben, in deinem eigenen Interesse.
 

freez

Top Contributor
Hallo maki,

ich habe schon ein paar JSF Applikationen erstellt. Nicht wirklich groß aber ich kann sagen, dass ich mich gut reingearbeitet habe. Auch das action Attribut kenne ich.

Ich habe ja eigentlich nach einer best practise Methode gefragt, wie man sowas löst. Ich bin ja der meinung, dass ich nicht der erste bin, der so eine Navigation umsetzen will. Das ich mit dem outcome meine Navigation beeinflussen kann weiss ich auch. Ich habe nur gehofft, dass es evtl. ne schönere Möglichkeit gäbe, als dies über meine Bean zu machen. Am liebsten würde ich sowas gerne in der faces-config konfigurieren, als in ner Bean zu programmieren. Aber die NavigationRules geben solche Möglichkeiten leider nicht her.

Ich hatte nur gehofft evtl. noch andere meinungen dazu zu hören. Aber trotzdem vielen Dank für deine Hilfe. Hast mir ja heute doch ordentlich geholfen :)
 
M

maki

Gast
Wollte dir nicht zu nahe treten, man sieht nur leider viel zu oft Leute, die glauben mit einem Tutorial alleine JSF lernen zu können...

Sorry, da hab ich dich wohl falsch eingeschätzt.

Gruß,

maki
 

zordan

Mitglied
Du könntest mal schauen, ob du mit einem eigenen NavigationHandler das ereichen kannst, was du möchtest.

Habe damit mal rumgespielt, um direkt eine geschützte Seite per URL anzusprechen und wenn der User nicht angemeldet war, wird er zur Anmeldeseite geleitet und danach zurück auf die ursprünglich angewählte Seite.

Gruß
zordan
 

freez

Top Contributor
@maki: Ja, am Anfang stand ein Tutorial. Aber das reicht bei Weitem nicht. ich habe mir schon einiges an Lektüre zur Gemüte geführt. Aber eines konnten alle Bücher nicht erfüllen: Wie mache ich gewisse Dinge richtig. Mein Problem heute war ja nicht eine Lösung zu finden. Ich hätte das problem schon irgendwie gemeistert. Aber wie löse ich das problem am sinnvollsten richtig. Manchmal gibt es ja API's, die ich noch nicht kenne. Vielleicht gibt es ja auch schon was dafür.

@zordan: kannst du mal grob aufzeigen, wie du den handler angegangen bist? Der Handler ist dann wahrscheinlich ein Filter gewesen?
 

zordan

Mitglied
Ich fühl mich auch teilweise so, als ob meine Lösungen für irgendwelche Probleme wie von hinten durch die Brust ins Auge wären. Solange es läuft ... schöner kann man es immer noch machen :-D

Hier mal 2 Links:

www.jsftutorials.net/jsfNavigation/jsf-login-navigation-redirect.html
www.jsftutorials.net/faces-config/navigationDecorator.html

Sonst musst du mal die Suchmaschine deines Vertrauens anwerfen, hab leider nicht mehr alle Links dazu, die liegen in der Firma auf meiner Workstation.
Doch die beiden Links geben schon mal einen Einblick.
 

freez

Top Contributor
@zordan:
Ich fühl mich auch teilweise so, als ob meine Lösungen für irgendwelche Probleme wie von hinten durch die Brust ins Auge wären

Du hast es genau richtig ausgedrückt. Aber scheinbar ist das, was man sich denkt doch ab und zu der richtige Weg. Aber wenn man nicht frägt, wird man es auch nie besser wissen. Danke für die Links. Sind recht interessant.
 

Sanix

Top Contributor
Das liegt halt daran, dass du an ein Framework gebunden bist. Das Gleiche ist, wenn du nach einer Action of eine externe Seite kommen willst.
Dann musst du ein interner redirect im Code selber machen, auch ziemlich unschön.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Navigation verhindern unter bestimmten Voraussetzungen Allgemeines EE 3
NoXiD jsf 2.1 navigation rule doesn't work Allgemeines EE 4
0 JSF fehlerhafte navigation Allgemeines EE 3
N zugriff auf sämtliche navigation rules Allgemeines EE 6
S JSF Navigation - Alternative zu Spring Webflow Allgemeines EE 6
S JSF - Aktion und Navigation in einem? Allgemeines EE 3
S JSF: Bei Navigation Bilder / Styles nicht mehr verfügbar Allgemeines EE 1
T JSF/MyFaces und Navigation Allgemeines EE 9
OnDemand JSF Seite lädt ohne ende Allgemeines EE 8
T HTTPS TLS 1.2 Seite auslesen Allgemeines EE 4
S Play Framework: Redirect im Routing auf Scala Seite Allgemeines EE 0
OnDemand Seite zerschossen, grundlos? Allgemeines EE 0
S aktuelle Seite neu laden Allgemeines EE 9
A Wie kann ich verhinder, dass die seite angezeigt wird? Allgemeines EE 3
T Einloggen auf Seite + MYSQL, JSP Allgemeines EE 6
boxi JSF Parameter für die nächste seite übergeben Allgemeines EE 2
P JSF Seite wird nicht gestartet Allgemeines EE 4
H request in JSP Seite ? Allgemeines EE 4
A Java-Applet in JSP-Seite Allgemeines EE 5
M JSF: Wie Refresh der Seite bei Click auf Button verhindern? Allgemeines EE 4
E bei struts inhalte über mehrere seite verteilen Allgemeines EE 6
M Tomcat - Bei allen Exceptions einheitliche Seite anzeigen ? Allgemeines EE 3
R Mehrsprachige Seite mit Struts & Co. ? Allgemeines EE 5
T Externe Seite per .jsp einbinden Allgemeines EE 6
F Eclipse Wtp und erste JSP Seite Allgemeines EE 5
P String in ein Textfeld einer externen Seite uebergeben ! Allgemeines EE 2
C In JSP Befehl zum Laden einer Seite in anderem Frame Allgemeines EE 3
Y Eine neue Seite mit Servlet öfnnen Allgemeines EE 9
A Leerzeilen in HTML-Seite, nach Erzeugen des Servlets Allgemeines EE 3
M Warum klappt die jsp seite nicht? Allgemeines EE 4
G :?: seite mit jsp automatisch bestücken und auslesen Allgemeines EE 5

Ähnliche Java Themen

Neue Themen


Oben