Struts / Tiles - nach einer Action zurück auf die letzte angezeigte Seite

Oliver Gierke

Erfahrenes Mitglied
Hallo zusammen,

ich hab folgendes Problem. Wir basteln an einer Webanwendung mit Struts / Tiles als Webframework. Für das Login haben wir einen Tile mit nem kleinen Formular auf jeder Seite. Ein Controller entscheidet dann über einen Sessionzugriff, ob das Formular angezeigt wird oder "Sie sind eingeloggt als...". Das Formular selbst referenziert eine Strutsaction, die den Login macht und die Sachen in die Session schreibt. So weit, so gut.

Ich würde nun gern der Action sagen: spring nach dem Ausführen wieder dahin zurück, wo du hergekommen bist. Da es sich um keine feste Seite handelt (der Login kann quasi von überall erfolgen) scheidet ein einfaches forward aus.
Das input="..." in den Actionmappings fällt also auch flach. Bliebe noch die Möglichkeit, im Formular per hidden Feld die Ursprungsseite mitzugeben. Allerdings bekomme ich über die Servlet API nur relativ technische Angaben zum Server zurück und nicht die ursprünglich aufgerufene URL. Das einzige was dem halbwegs nahe kam war getRequestURL() was aber halt den Pfad zur Ursprungs-JSP des Tiles layouts zurückgibt (was ja auch sinn macht, denn der request wird ja von struts an tiles geforwarded und schon ist eine neue RequestURL da).

Mit einem Frontcontroller könnte man das prima lösen in dem man da gleich zum anfang diese URL abgreift und sie halt im request als parameter ablegt und halt so allen seiten zur verfügung stellt. Ich spiel noch net so lang mit Struts... kann man das irgendwie machen?

Gruß
Ollie
 
Ja so kannst du es machen, einfach die letzte Seite merken, das hat mit Tiles übrigens auch nichts zu tun.
 
Hi,

also ich persönlich verweise in meinen Anwendungen nie direkt auf eine JSP-Seite, sondern lasse es immer über die Action laufen. Erst die Action-Klasse, danach die Seitenanzeige.

Ich habe mir eine kleine Funktion geschrieben, wo die URL übergeben wird. Daraus wird die Aktion ("xyz.do") rausgelesen und dieser eben (wie in diesem Fall an die Login-Seite) per Request-Parameter im Form mitgegeben:

Nur so als Idee.

Gruss
Cengiz.
 

Neue Beiträge

Zurück