JSP:使用javascript提交表单
(我知道问题有点长,但我相信解决方法很简单,所以如果有人能帮我看一下,我会非常感激) 我正在尝试编写一个学校系统,在那里你可以在网页上输入学生的姓名、年份、年级,并保存学生的信息以生成一个列表。我希望在网页上有两个“按钮”: 一个是“保存和下一个”,即如果您完成了一个学生信息的输入,单击此按钮,信息将被保存,网页将更新以输入下一个学生信息 第二个是“保存并完成”,即,如果这是您要输入的最后一个学生,请单击此按钮并保存最后一个学生信息,网页将重定向到下一页,其中显示所有学生信息的列表 为了实现这一点,在JSP中,我使用了两个HTML表单,其中一个我使用javascript尝试提交到servlet,但我一定做了一些错误的事情,因为它不能正常工作: 这是我的密码: InputGrade.jsp:JSP:使用javascript提交表单,javascript,html,forms,jsp,onclick,Javascript,Html,Forms,Jsp,Onclick,(我知道问题有点长,但我相信解决方法很简单,所以如果有人能帮我看一下,我会非常感激) 我正在尝试编写一个学校系统,在那里你可以在网页上输入学生的姓名、年份、年级,并保存学生的信息以生成一个列表。我希望在网页上有两个“按钮”: 一个是“保存和下一个”,即如果您完成了一个学生信息的输入,单击此按钮,信息将被保存,网页将更新以输入下一个学生信息 第二个是“保存并完成”,即,如果这是您要输入的最后一个学生,请单击此按钮并保存最后一个学生信息,网页将重定向到下一页,其中显示所有学生信息的列表 为了实现这一
<html>
<head>
<title>Title</title>
</head>
<body>
如果用户按“保存并完成”,即提交第二份表单,并再次将最后输入的学生添加到列表中,并重定向到显示整个列表的下一个网页:
}else if (request.getParameter("flag").equals("2")) {
request.getParameter("Grade");
....
inputStList.add(findstudent);
request.getSession().setAttribute("inputStList",inputStList);
response.sendRedirect("ShowList.jsp"); }
这就是问题所在:当提交第一个表单点击“保存并下一步”按钮时,它工作正常,但当提交第二个表单点击“保存并完成”按钮时,它返回错误
因此,如果有人能帮我看一看,我将不胜感激。这就是为什么您可以得到
NullpointerException
拇指规则
:如果要比较字符串,请首先检查它是否为空。
根据你的要求,我给你一个解决方案,你怎么能做到这一点。
假设您的表单如下所示:
<html>
<head>
<script>
function _submit(flagVal) {
document.getElementById('flagValId').value=flagVal;
document.getElementById('someFormId').submit();
}
</script>
</head>
<body>
<form action = "InputGradeServlet" method="POST" id="someFormId">
<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="button" value="save and next" onclick="_submit('1')"/>
<input type="button" value="save and exit" onclick="_submit('2')"/>
</td>
</tr>
</table>
<input type="hidden" id="flagValId" name = "flag" value=""/>
</form>
</body>
</html>
希望这会有所帮助。您不会得到form1值。您发布form2值,因此得到空错误 请试一试:
function finSaveFunc() {
var stName = document.getElementById("stName")
var Subject = document.getElementById("Subject")
var Grade = document.getElementById("Grade")
var newForm = document
.getElementById("form2")
.appendChild(stName)
.appendChild(Subject)
.appendChild(Grade);
newForm.submit();
}
它显示了什么错误?它显示了NullPointerException您没有通过点击“接受”按钮接受我的答案。
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");
}
}
}
}else if (request.getParameter("flag").equals("2")) {
request.getParameter("Grade");
....
inputStList.add(findstudent);
request.getSession().setAttribute("inputStList",inputStList);
response.sendRedirect("ShowList.jsp"); }
<html>
<head>
<script>
function _submit(flagVal) {
document.getElementById('flagValId').value=flagVal;
document.getElementById('someFormId').submit();
}
</script>
</head>
<body>
<form action = "InputGradeServlet" method="POST" id="someFormId">
<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="button" value="save and next" onclick="_submit('1')"/>
<input type="button" value="save and exit" onclick="_submit('2')"/>
</td>
</tr>
</table>
<input type="hidden" id="flagValId" name = "flag" value=""/>
</form>
</body>
</html>
if (request.getParameter("flag")!=null && request.getParameter("flag").equals("1")) {
//Add your student in this block and show the input page again.
response.sendRedirect("InputGrade.jsp");
}else if (request.getParameter("flag")!=null && request.getParameter("flag").equals("2")) {
//Add your student in this block and show the list.
response.sendRedirect("ShowList.jsp");
}
function finSaveFunc() {
var stName = document.getElementById("stName")
var Subject = document.getElementById("Subject")
var Grade = document.getElementById("Grade")
var newForm = document
.getElementById("form2")
.appendChild(stName)
.appendChild(Subject)
.appendChild(Grade);
newForm.submit();
}