2012-05-09 27 views
5

Ho 2 jsp pages and one Servlet. Sto recuperando i dati dal database per servlet e inviando i risultati alla pagina result.jsp in cui sto visualizzando il risultato. Ma voglio aggiungere un Back button in result.jsp, facendo clic su back button voglio andare a index.jsp, ma il problema è quando sto facendo clic sul pulsante indietro ogni volta che un messaggio sta arrivando Confirm form submission ed è irritante per me. Come posso evitare questo Confirm form submission? forse sta arrivando mentre l'elaborazione è fatta in servlet.vai alla pagina jsp premendo il pulsante indietro

index.jsp

<form method="post" action="Student"> 

<input type="text" name="studentname"/> 
<input type="submit" value="search"/> 

</form> 

Student servlet

String student_name=request.getParameter("studentname"); 

    -------fetching data from database------------ 
    -------------------sending to result.jsp------ 

    String nextJSP = "/result.jsp"; 
     RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP); 
     dispatcher.forward(request,response); 

result.jsp

//displaying data here 

<form action="index.jsp"> 

<input type="submit" value="back"/>// a back button is here which is going to index.jsp 
</form> 

EDIT

Dal result.jsp Ho intenzione di un'altra pagina result1.jsp come qui di seguito

In result.jsp ho scritto il seguente:

<a href="result1.jsp.jsp?a code=<%out.println(student_name);%>"><%out.println(student_name);%></a> 

Cliccando sul collegamento ipertestuale di cui sopra sono andato a result1.jsp

voglio aggiungere un pulsante di nuovo qui (in result1.jsp) e dopo aver cliccato voglio fare per result.jsp, ma quando clicco sul pulsante sto ricevendo Confirm form submission ogni volta. Ho scritto quanto segue in result1.jsp

<input type="button" value="Back" onclick="javascript:history.go(-1)"> 

Ancora sto ottenendo quel messaggio Confirm form submission. Come posso evitare questo? Voglio andare a result.jsp direttamente con questo messaggio. Come è possibile?

+0

Alcune risposte per la schiena (index.jsp rigido) sono dati. ** Per evitare che il go-back del browser attivi un secondo invio di modulo **, fai dopo che un modulo invia la convalida gestendo un 'sendRedirect' nella pagina dei risultati. Questa è una tecnica comune. –

risposta

2

è anche possibile utilizzare questo per andare indietro di una pagina

<button type="button" name="back" onclick="history.back()">back</button> 
0

È possibile utilizzare un comune button.

<input type="button" value="Back" onclick="javascript:history.go(-1)"> 

Con history.go(-1), il browser si limiterà a visualizzare la pagina precedente con la lettura dalla cache, esso non ripresentare i dati al server, in tal modo, non Confirm form submission accadrà.

EDIT

mi sbagliavo!

Tutto ciò che serve è un redirect lato client, si potrebbe scrivere qualcosa di simile nel tuo result.jsp dopo che gestisce il modulo inviato dal index.jsp:

response.sendRedirect("result.jsp"); 

quindi sarà necessario un parametro per aiutarvi a result.jsp a dire se si tratta di una semplice visualizzazione richiesta o un'invio di un modulo, qualcosa di simile:

String action = request.getParameter(action); 
if("submit".equals(action)) { 
    // handle form data 
    response.sendRedirect("result.jsp"); 
} else { 
    // other code to display content of result. 
} 

Nel vostro index.jsp, sarebbe b e qualcosa di simile:

.... 
<form action="result.jsp?action=submit" ...> 
+0

grazie per la tua risposta, ma puoi spiegare un po 'perché 'onclick =" javascript: history.go (-1) "'? che cosa significa? – saroj

+0

In realtà era 'window.history.go (-1)', dove window è la finestra corrente del browser, nota, puoi sempre omettere 'window'. Questa funzione è implementata dal tuo browser, 'history.go (-1)' significa 'vai indietro di 1 passo nella cronologia della finestra.' – neevek

+0

no no è ancora in arrivo' conferma invio modulo 'in realtà ho modificato la mia domanda – saroj

1

Prova questa

<button type="button" 
    name="back" 
    onclick='window.location='<your_path>/index.jsp'>back</button> 
1

Se si desidera un pulsante indietro per andare index.jsp, perché non basta fare un normale link?

<a href="index.jsp">Back</a> 

C'è solo due modi per sbarazzarsi del messaggio, il collegamento normale o window.location. Se la pagina precedente è sempre la stessa, non è necessario utilizzare il lato client della funzione complicata. Se la pagina potrebbe essere diversa, basta postare il link a result.jsp e usarlo per stampare effettivamente un collegamento posteriore!

EDIT:

previous.jsp

<form method="post" action="Student"> 
<input type="hidden" name="back" value="previous.jsp" /> 
<input type="text" name="studentname"/> 
<input type="submit" value="search"/> 
</form> 

result.jsp

out.println("<a href=\"" + request.getParameter("back") + "\">Back</a>"); 
+0

Ho appena provato il tuo codice ora ... out.println ("Back"); proprio questa linea farà il trucco. – Jayanta

0

Ho sperimentato che forma presentare conferma con Safari (non con IE/Chrome/FF).

Il lavoro consiste nell'inviare il modulo con il metodo "ottieni". Ovviamente questo è valido solo per i moduli "piccoli" (max 2048 K).

2

è possibile scrivere il codice qui sotto che ti permette di andare index.jsp sulla tua pagina di result.jsp

<a href="index.jsp">Back</a> 
1

Questo è il modo più semplice per creare un pulsante GoBack utilizzando il metodo GoBack(). È come fare clic sul "pulsante Indietro" utilizzato nella parte superiore del browser.

<!DOCTYPE html> 
    <html> 
    <head> 
    <script> 
    /* The back() method loads the previous URL in the history list. 
     This is the same as clicking the "Back button" in your browser. 
    */ 
    function goBack() { 
     window.history.back() 
    } 
    </script> 
    </head> 
    <body> 

    <button onclick="goBack()">Go Back</button> 

    <p>Notice that clicking on the Back button here will not result in any action, because there is no previous URL in the history list.</p> 

    </body> 
    </html> 
0

Prova questa

<a href="${pageContext.request.contextPath}/index.jsp" class="btn btn-success"> 
    Back 
</a> 

con bootstrap.css da here

Problemi correlati