Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    39

    [JSP] Forward pagine

    Ciao a tutti, ho questo problema:

    Ho una semplice pagina JSP con un form che l'utente deve compilare. A questa sono attaccati dei controlli di validazione.

    Quando l'utente preme il pulsante submit, l'action della form riporta alla stessa pagina e, se i dati sono validi, viene visualizzata un'altra pagina.

    Fin qui tutto bene! A parte un "piccolo" particolare:

    Se per reindirizzare l'utente alla pagina nuova metto <jsp:forward page="Menu.jsp" />, viene effettivamente visualizzata la pagine nuova, ma nel campo URL del browser vedo ancora quella vecchia (con relativi parametri). se l'utente aggiorna la pagina, viene visualizzata ancora la form!

    Se invece uso una istruzione javascript location.href = 'Menu.jsp', non riesco a tornare indietro con il pulsante back del browser, ma la URL è aggiornata il tasto F5 funziona.

    Come posso fare per ottenere un comportamento decente? Ovvero URL aggiornata con back e pulsante aggiorna che funzionano come ci si aspetti?

    Grazie!

  2. #2

    Re: [JSP] Forward pagine

    Originariamente inviato da zeccaman
    Quando l'utente preme il pulsante submit, l'action della form riporta alla stessa pagina e, se i dati sono validi, viene visualizzata un'altra pagina.
    Grazie!
    La cosa più sensata è impostare l'action del form direttamente alla pagina di arrivo, se passare dalla pagina del form ti serve solo per validare il form puoi oviare con un js simile a questo:

    codice:
    function salva() {
    	var coerente = true;
    	coerente = coerente && testDenominazione();
    	coerente = coerente && testTipoDati();
     	if(coerente) {
    		submitForm('<%=funz%>', 'salvaModelli', '<%=pag%>');
    	}
    }
    
    
    function testDenominazione() {
    	if(document.form.denominazione.value.length == 0) {
    		alert("denominazione obbligatoria.");
    		document.form.denominazione.focus();
    		return false;
    	}
    	return true;
    }
    
    function testTipoDati() {
    	var size = document.form.modellitipodati.length;
    	var select = false;
    	for(i = 0; i < size; i++) {
    		select = select || document.form.modellitipodati[i].checked;
    	}
    	if(!select) {
    		alert("selezionare almeno una tipologia di dati");
    		document.form.modellitipodati[0].focus();
    	}
    	return select;
    }
    è un po' lungo da fare, ma in questo modo, alla prima incoerenza che trovi, il browser ti porta direttamente nel campo da completare, e se il form è correttamente completato allora parte la submit.

    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.