Проблема с JSP getParameter - PullRequest
       16

Проблема с JSP getParameter

0 голосов
/ 28 декабря 2010

У меня есть форма, если таймер достигнет формы, она автоматически перенаправит сервлет для обновления базы данных.Моя проблема сейчас в том, что если javascript перенаправляет окно на сервлет, мой request.getParameter имеет значение null.

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

Я делаю это, потому что у меня есть iframe в моем jsp.Проблема обновления таймера должна использовать iframe.Таким образом, когда время истекло или пользователь нажимает на кнопку parent parent.window.location может позволить мне обновить родительское окно

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

Моя форма, когда пользователь нажимает кнопку подтверждения в течение определенного времени, запускает функцию проверки, чтобы позволить пользователю подтвердитьОтправить.Так что внутри моего TestServlet я получил это, потому что с помощью javascript redirect request.getParameter ("answer") это keep возвращает меня пустым.

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

Ниже приведен мой таймер, когда время перенаправления на TestServlet вызывает метод 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);
}

1 Ответ

0 голосов
/ 28 декабря 2010

Я не уверен, что понял проблему, но я думаю, что ваша проблема здесь:

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

Вы перенаправляете в TestServlet, но не отправляете никаких параметров, потому что не отправляете свою форму. Попробуйте что-то вроде этого:

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

Надеюсь, это поможет!

...