Jsp:forward aus iframe heraus

Hallo.

Ich stehe momentan vor dem Problem, dass ich aus einem iframe heraus ein jsp:forward machen möchte. Grundsätzlich geht das, aber es wird dann nur im iframe ge"forward"et. Ich möchte aber gerne den forward auf das parent-Frame machen, damit dort eine neue Seite geladen wird.

Das Attribut „target“ gibt es im jsp:forward aber nicht.

_2004-12-14 11:27:00 StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
org.apache.jasper.compiler.ParseException: /frame2.jsp(15,9) Forward: Invalid attribute, target _

Was hab ich für Alternativen? Javascript wäre eine sehr schlechte Alternative, gibts noch andere Möglichkeiten?

Bernd

Hi.

Ich stehe momentan vor dem Problem, dass ich aus einem iframe
heraus ein jsp:forward machen möchte. Grundsätzlich geht das,
aber es wird dann nur im iframe ge"forward"et. Ich möchte aber
gerne den forward auf das parent-Frame machen, damit dort eine
neue Seite geladen wird.

Da hast du generell ein Designproblem deiner Applikation. Forwards gelten ja nur für einen Request - Und das ist immer die aktuell aufgerufene Seite - Also in deinem Falle die Seite im IFrame.

Da gibt es zumindestens auf Serverseite keine MagicForwardFrameMethode, in der du das komplette Client-seitige Frameset neu laden kannst.

Das Attribut „target“ gibt es im jsp:forward aber nicht.

Das mußt du HTML-Seitig lösen. Dh. Der Link, der dem request mit dem jsp:forward vorangeht, muß als target _top oder _parent haben.

Was hab ich für Alternativen? Javascript wäre eine sehr
schlechte Alternative, gibts noch andere Möglichkeiten?

Siehe oben - Den auslösenden Link das richtige Target geben. Solltest du den forward nicht immer auslösen (Z.B. wenn du draufkommst, dass das eine geschützte Seite ist und der User nicht eingeloggt), wirst du ohne gröbere Umgestaltung deiner Webseite nicht ohne Javascript auskommen, welches den Frame neu lädt.

Allerdings können da einige Sicherheitsrelevante Themen aufkommen:
Z.B.: Liegt die Seite, auf die geforwardet wurde, auf der gleichen Domain wie das Frameset (Sonst kannst du das Javascript reloading vergessen)

Schreib doch einfach mal, was du genau machen möchtest und warum ein Iframe das ganze Frameset forwarden soll - Vielleicht finden wir ja eine elegantere Lösung :wink:

mfG,

J.P.Jarolim

hat sich erledigt…

Da hast du generell ein Designproblem deiner Applikation.

Naja, was Kunden nicht alles wünschen… :-/
Ich hab es jetzt anders gemacht. Auch keine 100%ige Lösung, aber es geht zumindest. (Daten in der Session Speichern und in der Parent-Seite bei Bedarf auslesen)

Allerdings können da einige Sicherheitsrelevante Themen
aufkommen:

Sicherheitstechnisch gibt es da keine Bedenken. Alle Dateien liegen im selben Verzeichnis und sind durch ein login direkt von Tomcat (über LDAP) geschützt. Ausserdem ist es eine Intranet-Anwendung, die nur im lokalen (Firmen-)Netz erreichbar ist.

Bernd

Hi.

Naja, was Kunden nicht alles wünschen… :-/

:wink:

Ich hab es jetzt anders gemacht. Auch keine 100%ige Lösung,
aber es geht zumindest. (Daten in der Session Speichern und in
der Parent-Seite bei Bedarf auslesen)

Es leben die Workarounds :wink:

Sicherheitstechnisch gibt es da keine Bedenken. Alle Dateien
liegen im selben Verzeichnis und sind durch ein login direkt
von Tomcat (über LDAP) geschützt. Ausserdem ist es eine
Intranet-Anwendung, die nur im lokalen (Firmen-)Netz
erreichbar ist.

Neee - So hab ich das nicht gemeint :wink: Gemeint war Javascript + Sicherheitszonenmodell der geläufigsten Browser: Du baust dir z.B. ein Frameset (bzw. Page mit Iframe) auf der einen Domain und referenzierst in dem frame eine Seite auf einer anderen Domain. Die Seite der anderen Domain kann zwar ein Script enthalten, das versucht, das ganze Frameset neu zu laden (Was weis ich zB document.location.href=’/andere/seite.html’). Das quittiert dir zumindestens der IE mit einem „Erlaubnis verweigert“ Javascript Error because of the „Sicherheit“ im Zonenmodell.

soderla - Aber du hast eh schon eine Lösung.

mfG,

J.P.Jarolim