Sasch: JSP: target-Angabe auch im "jsp:forward" ???

Hi z'samm,

habe ein Frameset, mit 3 Frames. In einem davon(main.jsp) sind wieder 3 Frames enthalten.
 Einer dieser Frames (form.jsp) beinhaltet ein Formular, das abgearbeitet wird. Am Ende steht ein
   <jsp:forward page = "<%=forwardpage%>" />
Nun soll die gerufene Seite allerdings nicht in dem selben Frame (form.jsp) geöffnet werden, in dem sie gerufen wurde, sondern wieder in der main.jsp.

Im "normalen" HTML läuft das ganze ja über das Target-Tag. Kann man sowas auch ins jsp:forward mit übernehmen oder wie kann ich da sowas reinkriegen.

H4H

THX Sasch

  1. Hallo zurück.

    Ich bin nun auch kein ausgesprochener JSP-Experte, aber kann es sein, dass jsp:forward ähnlich arbeitet wie bspw. Header:Location in PHP, also den HTTP-Header modifiziert um den Browser anzuweisen, die Seite zu wechseln (also nicht a la Luke, du weisst schon...:-))?

    In diesem Falle sehe ich keine direkte Möglichkeit, die Ausgabe in einen anderen Frame umzuleiten.

    Mir ist allerdings auch dein Ziel nicht ganz schlüssig...
    So, wie ich das verstehe, soll in einem Frame (a) ein Formular geladen werden, ebenfalls an Frame (a) geschickt werden und nach Verarbeitung der Werte soll sich in Frame (b) eine Seite xyz öffnen?

    Warum schickst du das Formular mit dem Attribut (btw: it's no tag...) target="main" nicht sofort in Frame (b)? Die Verarbeitung und der Redirect laufen dann dort ab.
    Den Frame (a) kannst du ebenfalls steuern, indem du noch ein onSubmit="document.location.href='abc.jsp';return true;" in dein Form-Tag schreibst.

    Und das ist immer noch "normales" HTML inkl. JavaScript, zumal JSP überhaupt gar kein HTML ist...just fyi

    Sollte ich dich falsch verstanden haben, nehme ich alles zurück und behaupte das Gegenteil :-)

    Grüße
    Sascha

  2. Hi,

    habe ein Frameset, mit 3 Frames. In einem davon(main.jsp) sind wieder 3 Frames enthalten.
    Einer dieser Frames (form.jsp) beinhaltet ein Formular, das abgearbeitet wird. Am Ende steht ein
       <jsp:forward page = "<%=forwardpage%>" />
    Nun soll die gerufene Seite allerdings nicht in dem selben Frame (form.jsp) geöffnet werden, in dem sie gerufen wurde, sondern wieder in der main.jsp.

    Das geht nicht.
    Bevor der Request vom Client losgeschickt wird, muß bereits feststehen, wo die Response landen soll.

    Zu dem Zeitpunkt, zu dem das JSP abgearbeitet wird, ist der Request bereits beim Server angekommen.
    HTTP kennt das Konzept von Fenstern (und damit target) nicht, also ist serverseitig nichts machbar (egal ob per JSP, PHP, ASP, Perl-cgi oder Serverside Woodoo).

    Du kannst im form-Element das target-Attribut benutzen.

    Andreas