PDA

View Full Version : problema con frame e jsp


Giak79
16-01-2006, 15:27
ciao a tutti ,
ho un problema al quale non riesco a trovare una soluzione ... ho una pagina html con 4 frame : 2 a lato (I1 e I2), uno superiore (I3) ed uno centrale (I4).
nel frame I3 ho la login.jsp che una volta loggati visualizza 3 pulsanti : modifica dati, carrello, e logout.
i primi 2 pulsanti sono dei collegamenti ad ad delle pagine jsp che vengono aperte nel frame I4 attraverso < target="I4" href=" ... > mentre l'ultimo pulsante è dato dal seguente codice :

form action="Logout" method=post
input type=submit value="Logout"> /form

e fa riferimento alla servlet logout che alla fine del codice ha la seguente istruzione :

getServletContext().getRequestDispatcher("/login.html").forward(request,response);

in questo modo nel frame superiore I3 viene visualizzata nuovamete la pagina di login con relative caselle di testo per inserimento di pass e user.

il problema è questo : quando faccio il logout non viene fatto il refresh sulla pagina visualizzata nel frame centrale I4 mantenendo la pagina visualizzata precedentemente al logout ( ad esempio continuo a vedere gli oggetti acquistati nel mio carrello anche se non sono + loggato).
come posso fare a risolvere il problema? :help:
Grazie infinite per l'aiuto!!
Giak

pinok
16-01-2006, 17:05
Quando fai il logout dovresti chiamare il refresh della pagina che definisce i frames, in modo che ognuno di loro venga ricaricato nella condizione corretta (se la sessione è chiusa, dovrebbe essere la condizione iniziale).

Giak79
16-01-2006, 20:49
potresti dirmi la stringa di codice da inserire ? ma devo metterla nella servlet logout prima della stringa :

getServletContext().getRequestDispatcher("/login.html").forward(request,response); ?

la pagina contenente tutti i frames è la classica index.htm.
Grazie per il tuo aiuto :)

pinok
16-01-2006, 21:41
Prova a mettere index.html al posto di login.html nel codice che hai postato.
Probabilmente, nella form da dove fai il logout, devi mettere qualcosa del tipo

<FORM NAME="logoutForm" action="...." TARGET=_top">
...
</FORM>

Giak79
16-01-2006, 23:32
perfetto!! funziona! grazie!!! :D

Giak79
19-01-2006, 13:41
un altro problema : dovrei fare un redirect di un frame ovvero quando viene caricata una pagina in questo frame deve essere visualizzata per 5 secondi e poi aprire una nuova pagina index2 nello stesso frame.
per caso è questa stringa?

<input type="hidden" name="redirect" value="index2.htm">

come faccio ad impostare il tempo?
grazie per l'aiuto!
Giak