java - jsp,Servlet在提交页面时仅重新加载表单

标签 java jsp servlets

我正在做的项目是基于Java jsp和Servlet

我正在创建问题导航器,一旦单击提交按钮,该导航器就会导航到新问题。下图是我在jsp页面中使用的表单。

<form name="form1" id="form1" method="POST" action="${pageContext.request.contextPath}/QuestionGenerateUser"> 
                            <div class="form-group" id="question">
                                <div class="labelalign">
                                    <label class="radio1" for="answer1">${Question}?</label>
                                    <input type="text" value="${QuestionID}" name="id" id="id" style="visibility: hidden;"/>
                                </div>
                                <label class="labels" ><input type="radio" name="answer" id="answer" value="1" checked="checked">${answer1}</label>
                                <span style="visibility: hidden;" class="error2" id="ans"></span>

                                <span style="visibility: hidden;" class="error2" id="answ1"></span><br>
                                <label class="labels" ><input type="radio" name="answer" id="answer" value="2">${answer2}</label>


                                <span style="visibility: hidden;" class="error2" id="answ2"></span><br>
                                <label class="labels" ><input type="radio" name="answer" id="answer" value="3">${answer3}</label>


                                <span style="visibility: hidden;" class="error2" id="answ3"></span><br>
                                <label class="labels" ><input type="radio" name="answer" id="answer" value="4">${answer4}</label>


                                <span style="visibility: hidden;" class="error2" id="answ4"></span><br>
                            </div>

                            <div style="margin-top: 30px; float: right;" >

                                <input class="btn btn-success" type="submit" name="submitAnswer" id="submit" value="Next Question" onclick="javascript:callMyMethodToSubmitAjax()"/>

                            </div>
                        </form> 

这是我的 servlet 代码,它从类获取数据并将其设置到 jsp 中

if (request.getParameter("submitAnswer") != null) {
            PrintWriter out = response.getWriter();

            String id = request.getParameter("id");
            String answer = request.getParameter("answer");
            Answer anAnswer = new Answer(id, answer);

            questionProcessor.addAnswer(anAnswer);
            Question question = questionProcessor.getQuestions();
            request.setAttribute("Question", question.getQuestion());
            request.setAttribute("answer1", question.getAnswer1());
            request.setAttribute("answer2", question.getAnswer2());
            request.setAttribute("answer3", question.getAnswer3());
            request.setAttribute("answer4", question.getAnswer4());
            request.setAttribute("QuestionID", question.getId());
            request.setAttribute("test", null);
            request.setAttribute("submitAnswer", null);
            request.getRequestDispatcher("QuestionPaper.jsp").forward(request, response);
        } else if (request.getParameter("getResults") != null) {
            questionProcessor.printResutls();
        }

我的 jsp 页面中有一个计时器,正在倒计时。单击提交按钮后如何仅刷新表单。目前它正在刷新整个页面,并且提交表单时计时器也会重置。

最佳答案

使用指向包含该表单的 jsp 页面的 HTML iframe 怎么样?这样,当您提交表单时,只有您的 iframe 会发生变化,并且外面的计时器将继续计数。

<小时/>

集成代码的简单示例

http://www.w3schools.com/js/tryit.asp?filename=tryjs_setinterval2

http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_iframe

<!DOCTYPE html>
<html>

<script>
var myVar = setInterval(myTimer, 1000);

function myTimer() {
    var d = new Date();
    document.getElementById("demo").innerHTML = d.toLocaleTimeString();
}
</script>

<body>
<p id="demo"></p>
<iframe src="http://www.w3schools.com">
  <p>Your browser does not support iframes.</p>
</iframe>

</body>
</html>

关于java - jsp,Servlet在提交页面时仅重新加载表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36232767/

相关文章:

java - 如何在spring boot中使用应用程序上下文获取bean

java - 在页面上显示加载的图像

java - 使用 Jetty 6 根据请求来源限制 Servlet 访问

javascript - 处理 Servlet 和 HTML 页面之间的函数调用和数据传输的最佳方式是什么

java - 在 Java 中启动连接的 telnet cmd 窗口

java - SQL子查询没有返回任何值,但junit测试仍然通过

java - 错误 : Missing return statement in Java

java - 我为什么要学习和使用struts?

java - 使用 Hibernate 将下拉列表值保存到 Struts 2 中的数据库

java - 将值从 java 传递到 jsp 或 servlet