我使用servlet和JSP处理在线考试项目。管理员可以添加包含选项问题的考试。第一个JSP是他添加第一个问题的时候。它只包含下一个按钮。最后一个JSP只包含后退按钮,其他JSP包含下一个和后退按钮。每个考试有5个问题。我的问题是如何使用按钮在这些JSP之间移动。这是我的代码,我不知道为什么它不起作用
// Servlet code:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int i=1;
String button1=request.getParameter("back");
String button2=request.getParameter("next");
if(button1!=null){
i=i-1;
}
if (button2!=null){
i=i+1;
}
if(i==1 ){
this.getServletContext().getRequestDispatcher("/WEB-INF/AddFirstQuestion.jsp").forward( request, response );
}
else if (i==5 ){
this.getServletContext().getRequestDispatcher("/WEB-INF/AddLastQuestion.jsp").forward( request, response );
}
else if (i>1 && i<5){
this.getServletContext().getRequestDispatcher("/WEB-INF/AddQuestion.jsp").forward( request, response );
}
}
并且有一部分JSP代码:
<input type="submit" name ="next" value="Suivant" />
答案 0 :(得分:1)
首先,您的JSP代码片段不可见,尝试制作表单方法并将内部设置为方法&#34; post&#34; 。我不确定使用getServletRequest。尝试使用这个。
RequestDispatcher dispatcher = request.getRequestDispatcher("AddLastQuestion.jsp");
dispatcher.forward( request, response );
此外,你还没有得到&#34;回来&#34;属性。只接收servlet要处理的下一个属性。因此,button2将始终设置为null。 尝试这样做。 JSP
<input type="submit" name ="next" value="Suivant" />
<input type="submit" name ="back" value="Suivant" />
在服务器端,Servlet
if(i==1 ){
RequestDispatcher dispatcher = request.getRequestDispatcher("AddLastQuestion.jsp");
dispatcher.forward( request, response );
}
else if (i==5 ){
RequestDispatcher dispatcher = request.getRequestDispatcher("AddLastQuestion.jsp");
dispatcher.forward( request, response );
}