Sequentielle Navigation mit Struts?

tomkn

Mitglied
Hi,

ich möchte in meine kleine Struts Seite eine Navigation einbauen die 100% sequentiell ist. d.h. man Startet immer auf Seite 1 -> login.jsp und von dort aus kann man nur zu Seite B - Von Seite B kann man zurück zu A oder zu C - aber nicht zu D.

Es sollen auch keine FolgeSeiten direkt aufgerufen werden können. Bei Aufruf von Seite C wird man wieder zu Login.jsp weitergeleitet, wenn nicht B oder D die Vorgänger sind. Zwar maskiert struts die Adressleiste im Browser - doch durch direkteingabe der Seiten kann man immernoch Querbeetspringen.

Meine Idee war immer den aktuellen Ort zu Speichern und beim Aufruf der Folgeseite zu prüfen wer die VorgängerSeite war. Leider will es nicht so recht klappen...
Hat da jemand schon Erfahungen gemacht und kann mir paar Tipps geben?

Danke, Tom
 
hallo,

die anwendungsmöglichkeiten hören sich ganz nett an. doch läuft mein projekt noch mit den 1.4.2 runtimes ... und das webflow braucht mindestens 1.5...
ich dachte mehr an eine minimalistische Lösung, die zB beim Seitenaufruf immer die Vorgängerseite prüft und bei ungültigkeit zur Startseite springt. :(
 
hmm da struts eh die aktuelle Seite maskiert und ich mit action-mappings arbeite würde es ja reichen das alle Seiten abgefangen werden die Direkt per jsp-link aufgerufen werden. Diese müsste man nur alle auf die Home ( also login.jsp ) umleiten.
wie stelle ich sowas an?
 
hmm ich hab das Problem erstmal so gelöst, das ich die JSP Files alle im WEB-INF Ordner untergebracht habe und dann die Pfade in der struts-config.xml angepasst habe.
Dadurch sind a) die Pfade maskiert da alles über ActionMapping läuft - b) keine JSP direkt zugreifbar ( oder täusche ich mich da? ) und c) ist die Navigation durch ein korrektes Mapping sequenziell.

dennoch finde ich meine Lösung unschön... würde mich über eine bessere freuen
 
JSPs unterhalb von WEB-INF ist immer gut. KLingt für Strutsverhältnisse doch sehr übersichtlich ;)

dennoch finde ich meine Lösung unschön... würde mich über eine bessere freuen

Du hast Struts verwendet, was erwartest du? ;) Nein mal im Ernst. Struts ist einfach nicht der richtige Hammer für diese Anforderung. Solang dieser Flow nur ein kleinen Teil deiner Anwendung ausmacht, bist du mit diesem Workaround gut bedient. Dokumentier das ordentlich und es ist okay. Sollte der Anteil der Flows steigen, solltet ihr über Alternativen nachdenken, wobei mir für sowas eigentlich nur WebFlow ein Begriff ist. Ich glaub Wicket benutzt intern auch Continuations, vielleicht geht das ja noch. mit Struts alllein wirst du allerdings nix eleganteres hinbekommen.

Gruß
Ollie
 
Moin,

leider ist mir gerade ein Problem aufgefallen was ich nicht so leicht handeln kann:
Ich habe zwar die Zugriffe auf die JSP-Seiten geblockt - doch falls ein User direkt die richtigen actions kennt und direkt eingibt kommt er trotzdem auf die Seiten drauf...

Eine andere Möglcihkeit hier wäre vielleicht:
Man prüft beim Aufruf jeder Seite woher sie kommt: -> Falls SeiteB nicht von SeiteA kommt -> springe zum Start usw.
Verwaltet struts die navigationshistory oder muss ich auf javascript zurückgreifen?
 
Bei mir ist Struts zwar schon mehrere Jahre her aber Kannst du das nicht mit den <logic> Tags abfangen?
z.B. <logic-present>
 
da magst du vielleicht recht haben. Leider habe ich mit den logic Tags noch keine Erfahrungen gesammelt und kann somit nur raten. Ich werde mich mal nach einem klugen Guide zu dem Thema umschauen...
 
Wie wärs denn mit einem ServletFilter der sich über ein bis zwei Stufen die aufgerufenen Actions merkt? Den könntest du meinetwegen per XML Konfigurtieren und darin dann festlegen, wann ein Benutzer auf die Startseite deines Flows zurück kommt.

Gruß
Ollie
 

Neue Beiträge

Zurück