(я знаю, вопросы немного долго, но я действительно полагаю, что решение легко, так что на самом деле был бы признателен, если кто-то может помочь мне взглянуть)JSP: с помощью JavaScript, чтобы отправить форму
Я пытаюсь написать школьная система, где вы можете ввести имя студента, год, класс, на веб-страницу и сохранить информацию о студенте для составления списка. Я бы хотел, чтобы на веб-странице было две «кнопки»:
Один из них «сохранить и следующий», то есть, если вы закончили вводить информацию об одном студенте, нажмите эту кнопку, информация будет сохранена, а веб-страница обновится, чтобы ввести следующую студенческая информация.
Во-вторых, это «сохранить и закончить», то есть, если это последний студент, которого вы хотите ввести, щелкните это, и последняя информация о студенте будет сохранена, а веб-страница будет перенаправлена на следующую страницу, где будет показан список всех учеников Информация.
Для достижения этой цели в JSP, я использовал два HTML формы, и один из них я использовал JavaScript, чтобы попытаться представить сервлет, но я должен был сделать что-то неправильно, потому что он не работает должным образом:
Здесь мои коды:
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, список, созданный для добавления студентов пользователь ввел
public class InputGradeServlet extends HttpServlet {
List<Student> inputStList = new <Student>ArrayList();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
если пользователь нажимает кнопку «сохранить и затем», формируется одна форма, а сервлет выполняет действие сохранения ученика в список и перенаправляет его в тот же файл 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");
}
}
}
Если пользователь нажимает кнопку «сохранить и закончить», т.е. представление второй формы, и сервлет снова добавить окончательный студент вошел в список и перенаправлять на следующую веб-страницу, показывающую всю список:
}else if (request.getParameter("flag").equals("2")) {
request.getParameter("Grade");
....
inputStList.add(findstudent);
request.getSession().setAttribute("inputStList",inputStList);
response.sendRedirect("ShowList.jsp"); }
В этом случае возникает проблема: при отправке первой формы нажатие кнопки «сохранить и затем» работает нормально, но при отправке второй из кнопки «сохранить и закончить» она возвращает ошибку.
Поэтому я был бы очень признателен, если кто-то может помочь мне взглянуть?
Что ошибка сделал это показывает? –
Это показывает NullPointerException –
Вы не приняли мой ответ, нажав кнопку «Принять». –