2010-12-28 8 views
0

J'ai un formulaire, si la minuterie atteindre le formulaire redirigera automatiquement vers le servlet pour mettre à jour la base de données. Mon problème est maintenant si javascript redirige la fenêtre vers servlet ma request.getParameter est null.JSP getParameter problème

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; 
} 
} 

Je fais cela parce que j'ai un iframe dans mon jsp. Le problème de mise à jour de minuterie doit utiliser iframe. Ainsi, lorsque le temps ou l'utilisateur peut cliquer présenter parent.window.location me laisser fenêtre parent rafraîchir

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

Ma forme lorsque l'utilisateur cliquez sur le bouton soumettre dans le calendrier, il déclenche la fonction de laisser vérifier utilisateur de confirmer soumettre. Donc, à l'intérieur de mon TestServlet je l'ai eu, car en utilisant javascript redirect request.getParameter ("answer") cela continue de me renvoyer 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); 
    } 
} 

Voici ma minuterie lorsque le temps jusqu'à redirect pour TestServlet déclencher la méthode 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); 
} 

Répondre

0

Je ne suis pas sûr que je l'ai compris la question, mais je pense que votre problème est ici:

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); 
} 

Vous êtes redirigé vers TestServlet mais vous n'envoyez aucun paramètre car vous ne soumettez pas votre formulaire. Essayez quelque chose comme ceci:

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); 
    } 

Espérons que cela aide!

+0

Salut parce que ce formulaire est à l'intérieur d'un iframe – user236501