2010-12-28 18 views
0

Ich habe ein Formular, wenn der Timer das Formular erreichen wird automatisch an das Servlet um Datenbank zu aktualisieren umleiten. Mein Problem ist jetzt, wenn Javascript das Fenster umlenkt, um mein request.getParameter ist Null.JSP getParameter Problem

function verify(f,whichCase){ 
if(whichCase == "Submit"){ 
    msg = "Are you sure that you want to submit this test?"; 
    var i = confirm(msg) 
    if(i){ 
     parent.window.location = "sindex.jsp" 
    } 
    return i; 
} 
} 

Ich mache das, weil ich einen iframe in meinem Jsp bekam. Timer Update Problem muss iframe verwenden. Also, wenn die Zeit parent.window.location einreichen oder Benutzer klicken kann mich aktualisieren lassen geordnete Fenster

<form method="POST" action="${pageContext.request.contextPath}/TestServlet" onSubmit="return verify(this,whichPressed)"> 

Meine Form, wenn die Benutzer-Taste innerhalb der Zeit einreichen klicken, wird es löst die Funktion überprüfen Benutzer bestätigen vorlegen zu lassen. So in meinem TestServlet habe ich das, weil JavaScript-Umleitung request.getParameter ("Antwort") dies halten mich zurück Null.

protected void doPost(HttpServletRequest request, 
HttpServletResponse response) throws ServletException, IOException { 
if (request.getParameter("Submit") != null) { 
    String ans = request.getParameter("answer"); 
    Answer a = new Answer(ans, no); 
    aa.CreateAnswer(an,t.getTestCode(),username); 
    RequestDispatcher rd = request.getRequestDispatcher("/sindex.jsp"); 
    rd.forward(request, response); 
    } 
} 

Im Folgenden sind meine Timer, wenn die Zeit zu TestServlet umleiten bis lösen die Methode doGet

if((mins == 0) && (secs == 0)) { 
window.alert("Time is up. Press OK to submit the test."); // change timeout message as required 
var sUrl = "TestServlet"; 
parent.window.location = sUrl // redirects to specified page once timer ends and ok button is pressed 
} else { 
    cd = setTimeout("redo()",1000); 
} 

Antwort

0

Ich bin mir nicht sicher, ob ich das Problem verstanden haben, aber ich denke, Ihr Problem hier ist:

if((mins == 0) && (secs == 0)) { 
window.alert("Time is up. Press OK to submit the test."); // change timeout message as required 
var sUrl = "TestServlet"; 
parent.window.location = sUrl // redirects to specified page once timer ends and ok button is pressed 
} else { 
    cd = setTimeout("redo()",1000); 
} 

Sie leiten zu TestServlet um, aber Sie senden keine Parameter, da Sie Ihr Formular nicht absenden. Versuchen Sie etwas wie folgt:

if((mins == 0) && (secs == 0)) { 
    window.alert("Time is up. Press OK to submit the test."); // change timeout message as required 
    var sUrl = "TestServlet"; 
    //myform it's a variable pointing to your form 
    myform.submit(); 
    } else { 
     cd = setTimeout("redo()",1000); 
    } 

Hoffe, das hilft!

+0

Hallo, da diese Form in einem Iframe ist – user236501