(我知道这个问题是有点长,但我相信解决办法是容易的,所以会很感激,如果有人可以帮我看看)JSP:使用JavaScript来提交表单
我想写一个学校系统,您可以在网页上输入学生的姓名,年份,年级,并保存学生的信息以生成列表。我希望它有两个“按钮”在网页上:
一个是“保存和下一个”,即如果你输入一个学生信息,点击这个,信息被保存,网页更新进入下一个学生信息。
其次是“保存并完成”,即如果这是您想要输入的最终学生,请单击该按钮并保存最后一个学生信息,并将网页重定向到显示所有学生列表的下一页信息。
为了实现这一目标,在JSP中,我用了两个HTML表单,其中有一个我用JavaScript来试图提交到servlet的,但我一定是做了错误的,因为它不能正常工作:
这里是我的代码:
InputGrade.jsp:
<html>
<head>
<title>Title</title>
</head>
<body>
的第一种形式:使用的输入标签用户输入信息,也可用于输入标签来创建一个提交按钮“保存下一个”:
<form action = "InputGradeServlet" method="POST">
<table>
<tr>
<td>
Enter Student Name: <input type="text" id="stName" name = "stName" />
</td>
<td>
Enter Subject: <input type="text" id="Subject" name = "Subject" />
</td>
<td>
Enter Grade: <input type = "text" id="Grade" name = "Grade" />
</td>
<td>
<input type="submit" value="save and next"/>
</td>
</tr>
</table>
<input type="text" name = "flag" style="display: none" value="1"/>
</form>
第二种形式包括“保存并完成”按钮,但使用JavaScript来提交的资料:(我认为问题出在哪里)
用户仍然进入第一种形式的学生信息,但JavaScript函数使用的getElementById函数获取第一种形式
<form name="form2" action ="InputGradeServlet" method="POST" >
<input type="text" name = "flag" style="display: none" value="2"/>
<button onclick="finSaveFunc()">Finish and submit</button>
<script>
function finSaveFunc() {
var stName = document.getElementById("stName")
var Subject = document.getElementById("Subject")
var Grade = document.getElementById("Grade")
document.stName.submit();
document.Subject.submit();
document.Grade.submit();
}
</script>
而在Servlet中,创建添加的学生名单将用户输入
的信息如果用户按下“save and next”按钮,表单将被提交,并且servlet执行将学生保存到列表并重定向到同一个JSP文件的操作,即再次重定向同一个网页进入下一个学生: (也可能是有问题的)
if (request.getParameter("flag").equals("1")) {
request.getParameter("Grade");
...... (get other info: name, year ect)
inputStList.add(findstudent); //add student entered to the list
response.sendRedirect("InputGrade.jsp");
}
}
}
如果用户点击“保存并完成”,即提交第二种形式,和servlet再次在最后加上学生进入到列表中,并重定向到下一个网页显示整个列表:
}else if (request.getParameter("flag").equals("2")) {
request.getParameter("Grade");
....
inputStList.add(findstudent);
request.getSession().setAttribute("inputStList",inputStList);
response.sendRedirect("ShowList.jsp"); }
这是它出现问题的地方:提交第一个表单时点击“保存并下一步”按钮可以正常工作,但是当提交第二个按下“保存并完成”按钮时,它会返回错误。
因此,我真的很感激,如果有人可以帮我看看?
什么是错误做的节目吗? –
它显示NullPointerException –
你没有接受我的答案,点击接受按钮。 –