(我知道這個問題是有點長,但我相信解決辦法是容易的,所以會很感激,如果有人可以幫我看看)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 –
你沒有接受我的答案,點擊接受按鈕。 –