【问题标题】:jsp, Servlet reload only form when the page is being submitedjsp,Servlet仅在提交页面时重新加载表单
【发布时间】:2016-03-26 07:25:40
【问题描述】:

我做的项目是基于Java jsp和Servlets的

我正在创建问题导航器,一旦单击提交按钮就会导航到新问题。下图是我在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 页面中有一个计时器,用于倒计时。单击提交按钮后,如何仅刷新表单。目前它正在刷新整个页面,并且在提交表单时计时器也会重置。

【问题讨论】:

    标签: java jsp servlets


    【解决方案1】:

    使用指向包含该表单的 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>
    

    【讨论】:

    • 嗨,对不起,我不能早点回复。我尝试添加 iframe,但它不显示任何内容。 iframe 是空白的。您可以尝试添加一个 iframe 并显示给我看吗?
    猜你喜欢
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 2015-06-21
    • 2013-01-05
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    相关资源
    最近更新 更多